問題タブ [jquery-deferred]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
jquery - document.ready()でjQuery Deferredを取得できますか?
スクリプトがロードされた直後に、いくつかの翻訳を取得するためにAjaxリクエストを行っています。ページの下部にスクリプトをロードしているので、ドキュメントの準備ができた後は常にこれが返されるはずですが、ドキュメントの準備ができた状態で遅延オブジェクトを取得できるかどうかはまだ気になります。
そうすれば、ドキュメントの準備ができており、Ajax呼び出しが正常に返されることを確認してから、次のようにすることができます。
javascript - 非同期リクエストが送信されたときに変数 != undefined を検出するより良い方法
以下を考えると:
someScopedVariable
問題は明らかです。これは非同期の状況であり、未定義でなくなるまで待ってから続行したいと考えています。
jQuery の .when() -> .done() 遅延呼び出しを使用することを考えましたが、うまく動作しないようです。また、まだ定義されているかどうかを確認するだけのループを実行することも考えましたが、それはエレガントに見えません。
可能なオプション 1:
可能なオプション 2 (ひどいオプション):
更新: 説明するためにあまりにも多くのロジックを削除したと思われるため、一部を追加し直しました。これの目標は、このデータへのアクセサーを作成することでした。
javascript - 既存の $.when に延期された新しい jquery を追加するにはどうすればよいですか?
従来のコールバック パターンを使用していたリソース読み込み関数をリファクタリングして、代わりに jQuery Deferreds を使用しています。
この関数は、url の配列を取り、リソースごとに新しい Deferred オブジェクトを作成し、$.when
それらを監視する Deferred オブジェクトを作成し、オブジェクトの promise を返し$.when
ます。
メソッドの簡略化されたバージョンを次に示します。
これはうまくいきます。
私の問題: 古いスクリプトでは、theLib.getResources()
ユーザーのアクションまたはイベントに基づいて 1 つの呼び出しを行うだけでなく、ユーザーがアクションを実行していない (つまり、記事を読んでいる) 間にアプリケーションが「ストリーミング」するリソースのマスター リストも定義していました。 )。
これらのストリーミングされたリソースの一部は、ユーザーがアクションを実行したときに手動で呼び出すことができるリソースと同じです。このスクリプトは、ロードされたものを追跡することで、リソースを 2 回ロードしないほどスマートでした。
また、追跡しtheLib.isLoading
ます。その関数の冒頭は次のようになりました。
promise オブジェクトを返す必要があるため、これはもうできません。
を確認できることを知っていtheLib.currentDeferred.isResolved()
ます。$.when
その時点で解決されない場合:監視されているキューに遅延オブジェクトを追加するにはどうすればよいですか?
ajax - jQueryAJAX応答を待機しています
100回呼び出されるjQuery.ajax(async:true)を使用して、それらがすべてロードされているときに、システムが100回の呼び出しすべてが戻るのを待ってから続行する必要があるというページがあります。どうすればいいですか?
前もって感謝します!:)
アップデート:
これらの呼び出しはfor()ループで行われます(100個あります:))
jquery - jqueryの延期は失敗を成功に変える
したがって、jQueryの延期を使用し、$.when
多くのオブジェクトを並行してロードする場合。
今、b.ajax()
時々失敗しますが、私は実際には気にしません。complete()を呼び出す前に、すべての呼び出しが完了するまで待ちたいだけです。
b
残念ながら、失敗するとすぐにwhen()
拒否され、then()
コールバックが起動されることはありません。これはAFAIKの予想される動作です$.when()
が、この場合は私に適しています。
私は効果的に言う方法が欲しいです:
または、おそらく別の使用方法when()
、またはより適切な構成がありますか?
jquery - jQuery Deferred と jqXHR
私が使う:
しかし、バージョン 1.5 では deferred オブジェクトが追加されました。
Q: 一般的に、success、error、および complete メソッドと、deferred then、done、fail の新しいホットネスを使用するのはいつですか?
javascript - jQuery($ .Deferred)でオプションのAJAX /関数呼び出しをキューに入れますか?
JavaScript/jQueryで任意の数のオプションの関数呼び出しをキューに入れようとしています。たとえば、2番目(または3番目、4番目など)の関数またはAJAX呼び出しを実行する前に、ユーザーが認証され、Cookieが設定されていることを確認する必要がある場合があります。
最近追加されたjQuery.Deferredを使用してこれを行うことを検討しましたが、呼び出しがどの順序で実行されるかは問題ではないことがわかりました(真の非同期スタイル)。また、Deferredインスタンスが解決されると、それを元に戻すことはできないことを読みました。
これが私が今これに取り組んでいるところです。最初は、Deferredインスタンスを解決するように設定し、オプションの関数がスタックに表示された場合は解決しないことを考えていました。
私の質問は、純粋なJavaScript / jQueryでAJAX呼び出しをキューに入れる(0からN)ための最良の方法は何ですか?(プラグインを使用せずに)。
タク!
編集2:解決しました! これのいくつかの実用的な例を次に示します。1つはAJAXなしで、もう1つは https://gist.github.com/1021429https://gist.github.com/1021435を使用しています 。
jquery - 非同期の Ajax リクエストで Defer がまったく機能しない
Ajax 非同期リクエストによって入力された複数の HTML リストがあります。これらのすべての要求が終了したら (多数の要求があります)、顧客レコードに対応するリスト項目を選択してフォームに入力する必要があります。
これを達成するために deferreds を使用しようとしていますが、リストが作成されるずっと前に関数が起動してしまいます。何か案は?
実際のアプリケーション コード:
javascript - いくつかのjquery ajaxの後に他のjqueryを行う方法
私はPHPを使用しています。jQuery AJAX プロセスを終了したい (プロセスを終了し、データをメイン ページに戻した後)。
次に、次の jQuery を実行します。それを行う方法についてのアイデアはありますか?