背景情報:
フォームの中で選択リストを作成してそれを作成する機能があります。その後、スクリプトはリスト内のオプションを実行し、特定の値を探します。値がある場合、スクリプトはそのオプションを '選択'します。
問題:リストが動的に作成し、いくつかの時間が非常に大きいされているので
、それはロードに時間がかかります。この場合、スクリプトの2番目の部分(オプションを選択する部分)は、選択リストにロードする時間がないため何もしません。解決のための
アイデア:
いいだろう、何が選択リストのためのonloadイベントで(別の関数としての)関数の第二部を呼び出すことです。しかし、選択リストはonload属性を持つことは想定されていません。もう1つのアイデアは単に遅延を追加することですが、ある日遅延が十分に長くない可能性があります。遅延を使用して任意の助けを事前に
おかげJavascript:スクリプトがロードする要素を待つ必要があります
答えて
私はついにこの問題を修正しました。このソリューションは、ここで説明したものとはまったく異なりました。基本的には、新しいオプション(値、テキスト)を使ってリストにオプションを追加していました。私はif文を投げつけてしまい、必要なものと等しい値が新しいOption(value、text、true)に使われると終了しました。それが問題を解決しました。今日の仕事すべて。
は信頼できるものではありません。選択リストを作成するために使用しているものは、終了時に直接関数を呼び出す必要があります。交互
:
ない「のonload」イベントは、あなたが本当にそれを行うことができ、すべてがタイムアウト後に自分自身を呼び出す関数を持って選択するためにはありませんので。選択リスト内の項目の長さがゼロから変更されている場合、現在項目(開始点)を追加していることが分かります。開始点に達して、次のタイムアウト後に何も変更されていない場合は、リストに項目が追加されなくなったとみなして、2番目の機能を実行できます。
1.タイムアウトを設定する 2.すべてのアイテムがロードされたかどうかをチェックするtime outが発生したときに関数を呼び出す。 3.すべてがロードされている場合は、機能2を実行してオプションを選択し、タイムアウトを設定して繰り返します。 これはこの意味ですか? – VinkoCM
はい。リストの長さが変わっても、すべてのアイテムがロードされたことがわかります。 –
オプションをコールバック関数を選択する関数を作成してみませんか?リストを作成する関数の最後に呼び出されます。例えば。
function createList(onComplete) {
// Create the list and maybe other tasks
onComplete();
}
注:このようなことが、私はあなたのアイデアを持っていると思わないかもしれません...
さて、リストが作成された直後に、残りのスクリプトが必要なオプションを選択します。問題は、ブラウザーでリストをロードするのに時間がかかることです。だから私はリストが読み込まれるのを待たなければならない。そういうわけで、onloadイベントが不思議になるのですが、サポートされていません。 – VinkoCM
はどのようにあなたのAJAX呼び出しをやっていますか?ほとんどのAJAXライブラリは、正常終了時にコールバックを行うメカニズムを提供します。 jQueryのでたとえば:あなたはJavaScriptであなたのリストを構築し、手動で&をAJAXの応答を処理している場合は、あなただけの選択を行うことができますので、
$("#myList").load("ajax.url", function(){
//your content has been loaded, so you can do your selection logic here
});
、あなたはすでに、リストが終了したときに知っているコードを持っていますもう一度、別の機能としてではなく終了しました(zyemingが示唆したように)。
あなたが役に立たない場合は、人々があなたにさらに具体的な回答を与えることができるように、コードを投稿する価値があります。
それがうまくいくかどうかわかりません。私は明らかに、リストが完全に埋められた時を知っている。私の問題は、リストがブラウザに読み込まれるまでに時間がかかることです。私が 'アラート(' AAAAAA ');オプションを選択するスクリプトの部分の前に、「OK」をクリックするのに時間がかかるので、リストがロードされるので問題はありません。リストをロードするのではなく、リストを作成するのを待つ必要はありません。 – VinkoCM
javascriptを使用してDOMにコンテンツを追加すると同期が取れます(つまり、リストを作成するときに、ブラウザがロードするのを待つ必要はありません、あなたのajax呼び出しが完了したと仮定して)...あなたがしようとしているようなサウンドあなたの選択ロジックは、実際に完了するのではなく(例えば、コールバックで)、ajaxコール(非同期)を作成した直後に実行されます。どちらか、または私はあなたのAjaxの負荷をどのようにしているかを十分に理解していません。私が言ったように、いくつかのコード(ちょうどあなたがやっていることを強調するバージョンをカット)は、多くの助けとなるでしょう。 – Alconja
- 1. jQueryのロードはターゲットスクリプトを待つ必要があります
- 2. javascriptスクリプトをアンロードする必要がありますか?
- 3. 私はHTTP応答を待つ必要があります
- 4. 非同期メソッドを待つ必要がありますか?
- 5. 非同期メソッドを待つ必要がありますか?
- 6. Cosmos DB - インデックス作成を待つ必要がありますか?
- 7. 子要素を別の子要素にドロップする必要があります
- 8. Segueは、ディスパッチキューが終了するまで待つ必要があります
- 9. kivy-スレッドが終了するまで待つ必要があります
- 10. APIメソッドはクリティカルメソッドが完了するまで待つ必要があります
- 11. エラー:ルートルートは1つの要素をレンダリングする必要がありますRe
- 12. Alamofireリクエストが完了するのを待つ必要があります - スウィフト
- 13. Javascript - 外部JavaScriptを読み込むいくつかのjavascriptを待つ必要があります
- 14. タイトルごとに要素を探す必要があります。
- 15. 1列に2つの配列をマージ(要素があまりにもマージする必要があります)
- 16. jqueryデタッチとロードがフェードイン/アウトする必要があります
- 17. JavascriptがHTML要素が存在するのを待ちます
- 18. データセグメントに何をロードする必要がありますか?
- 19. ビューポートでdivをロードする必要があります
- 20. モデルテストでword2vecモデルをロードする必要がありますか?
- 21. Unixスクリプトでロジックを追加する必要があります。
- 22. スクラップPHPスクリプトを修正する必要があります
- 23. Pythonスクリプトを終了する必要がありますか?
- 24. html div要素に不必要なスペースがあります
- 25. タスクを取得して渡すメソッドを待つ必要がありますか?
- 26. ある要素から別の要素に画像を移動する必要があります
- 27. UI要素は誰が作成する必要がありますか?
- 28. excelからURLをロードする必要があり、Rubyスクリプトを使用して実行する必要があります
- 29. いつ@sectionスクリプトを使用する必要がありますか?
- 30. WebPackエントリはJavaScriptファイルである必要があります
コンテンツをサーバーから動的にロードしているのですか、またはJavaScriptを使用してクライアント側でプログラムによって生成されていますか。それを少し明確にしてください。 – SingleNegationElimination
リストは、AJAXとのサーバから動的に取り込まれます。私がする必要があるのは、リストにデータが入るのを待つことですが、遅延を追加することはうまくいかず、リスナーを追加することはできません。 – VinkoCM