問題タブ [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 - すべてのAJAX呼び出しをシーケンシャルにする方法は?
私はjQueryを使用しています。また、アプリケーションで並列AJAX呼び出しは必要ありません。各呼び出しは、開始する前に前の呼び出しを待機する必要があります。それを実装する方法は?ヘルパーはいますか?
UPDATEXMLHttpRequestまたはjQuery.postの同期バージョンがある場合は知りたいです。しかし、シーケンシャル!=同期であり、非同期のシーケンシャルソリューションが必要です。
jquery - 据え置きオブジェクトとは何ですか?
jQuery1.5は「遅延オブジェクト」を追加します。彼らは何ですか、そして彼らは正確に何をしますか?
javascript - jQuery deferredはどのように使用できますか?
jQuery 1.5は、新しいDeferredオブジェクトとアタッチされたメソッドをもたらし.when
ます。.Deferred
._Deferred
これまで使用したことがない人のために、ソースに.Deferred
注釈を付けました。
これらの新しいメソッドの可能な使用法は何ですか、パターンにそれらを適合させるにはどうすればよいですか?
私はすでにAPIとソースを読んだので、それが何をするかを知っています。私の質問は、これらの新機能を日常のコードでどのように使用できるかということです。
AJAXリクエストを順番に呼び出すバッファクラスの簡単な例があります。(次のものは前のものが終わった後に始まります)。
.Deferred
とのデモンストレーションと可能な使用法を探してい.when
ます。
の例を見るのも素敵でしょう._Deferred
。
jQuery.ajax
例のために新しいソースにリンクすることは不正行為です。
操作が同期的に実行されるか非同期的に実行されるかを抽象化するときに、どのような手法が利用できるかに特に興味があります。
jquery - jQuery Deferredの配列をどのように処理しますか?
データを特定の順序でロードする必要があるアプリケーションがあります。ルートURL、スキーマ、最後にさまざまなデータオブジェクトのスキーマとURLでアプリケーションを初期化します。ユーザーがアプリケーションをナビゲートすると、データオブジェクトが読み込まれ、スキーマに対して検証され、表示されます。ユーザーがデータをCRUDすると、スキーマは初回通過検証を提供します。
初期化に問題があります。Ajax呼び出しを使用してルートオブジェクト$.when()をフェッチし、スキーマオブジェクトごとに1つずつpromiseの配列を作成します。それはうまくいきます。コンソールにフェッチが表示されます。
次に、すべてのスキーマのフェッチが表示されるので、各$ .ajax()呼び出しが機能します。fetchschemas()は確かにpromiseの配列を返します。
ただし、その最後のwhen()句は起動せず、「DONE」という単語がコンソールに表示されることはありません。jquery-1.5のソースコードは、「null」が$ .when.apply()に渡すオブジェクトとして受け入れられることを意味しているようです。これは、when()が内部Deferred()オブジェクトを構築して、オブジェクトがない場合にリストを管理するためです。渡されました。
これはFutures.jsを使用して機能しました。このようになっていない場合、jQuery Deferredの配列をどのように管理する必要がありますか?
jquery - jQuery.Deferredオブジェクトを使用して、非同期関数呼び出しが完了するのを待つにはどうすればよいですか?
フォーム内でPluploadファイルアップローダーを使用しています。フォームが送信されたとき、つまり[送信]ボタンがクリックされたときに、最初にファイルのアップロードが行われ、次にフォームが送信されるようにカスタマイズしたいと思います。
私の知る限り、これは間違っているかもしれませんが、この呼び出しuploader.start()
は非同期関数呼び出しのようです。そのため、現時点では、ファイルがアップロードされる前にアップロードが開始され、フォームが送信されます。問題は、この関数呼び出しを制御できないことです。
最近、jQuery 1.5の新しいリリースと新しい遅延オブジェクトについて読みましたが、これはこの問題の解決に役立つ可能性があるようです。非同期関数呼び出しがその作業を終了するのを待って、呼び出し後にコードの実行を続行する方法はありますか?だから私は次の擬似コードのようなものを探しています...
終了を「待機」する方法はありますかuploader.start()
。基本的に、クリックイベントハンドラーを一時停止して、すべてのファイルを最初にアップロードしてから、残りのクリックイベントハンドラーの実行を終了できるようにします。次のことを試しましたが、ファイルのアップロードが完了する前に「done」が出力されます...
もう1つの有用な情報... uploader
「UploadProgress」や「UploadComplete」などの特定のイベントをこのオブジェクトインスタンスにバインドできます。たとえば、Deferred Objectを使用して、「UploadComplete」イベントが発生したときにキャッチできますか?これを行うためのAJAX-yの方法はありますか?
ありがとう。
jquery - jQuery 1.5:DeferredオブジェクトがUNRESOLVED状態で.done()を呼び出すのはなぜですか?
実際のページで発生している問題を模倣したテストページを作成しました。
でわかるようにdoSomething2()
、dfdオブジェクトは意図的に解決されることはありません。ただし、次のコードを実行すると、.done()
inはdoSomething()
常に起動します。コンソールを調べると、実行直前にそれdfd.isResolved()
が誤り.done()
であることがわかります。
洞察はありますか?どんな助けでも大歓迎です
編集:私はこの関数が何も達成しないことを理解しています。問題を再現するための例を作成しました。'google.com'の取得はSOPに反することを理解しています。問題を再現するために、この例を作成しました。1つのhtmlファイルからローカルで実行することを目的としたWebアプリを開発しています。この場合、SOPは厳密に守られていないため、少なくともテストは問題ありません。
編集:この動作をテストするためにjsfiddleを作成しました:http: //jsfiddle.net/Sgwpv/2/
javascript - jQueryDeferredが機能しない
私は次のようにコードを試しています
これは期待どおりに機能します。しかし、私がそれを次のように書くとき:
「開始中」と警告するだけで終了します。実際の例はhttp://jsfiddle.net/XQFyq/2/にあります。私は何が間違っているのですか?
jquery - jQuery Deferred resolve() が機能しない
私が間違っているのは何ですか?
javascript - カスタムイベントでjQueryDeferredを使用するにはどうすればよいですか?
私には2つの抽象化されたプロセスがあり(たとえば、内部を公開しない公開モジュールパターンを使用してjsオブジェクト内で管理されます)、完了時にカスタムイベントを発生させます。両方のカスタムイベントが発生したときにアクションを実行したいと思います。
jQuery 1.5の新しいDeferredロジックは、これを管理するための理想的な方法のようです。ただし、when()メソッドは、promise()(または通常のjsオブジェクト)を返すDeferredオブジェクトを取得しますが、when()は、代わりにすぐに完了します。待っている、それは私には役に立たない)。
理想的には、次のようなことをしたいと思います。
これらの2つのテクニックを組み合わせる最良の方法は何でしょうか?
javascript - jQuery Deferred Ajax、JavaScriptスコープの問題?
これはかなり簡単だと思いましたが、機能していません ( http://jsfiddle.net/QtjaG/のライブ例):
内のコンテキスト$.resx.call(labels)
を設定する必要があるため、ログに記録しないでください。this
$.resx()
labels
console.log(labels)
yo