0

私は現在、ファイルのアップロードをサポートするモバイル向けのサイトを運営しており、ユーザーがファイルをフォームにアップロードする際のアイドル時間を大幅に節約しようとしています。

私の目標は次のとおりです。

 xhr = new XMLHttpRequest();

 xhr.open("POST", "http://myServer/myEndpoint");
 xhr.setRequestHeader("Cache-Control", "no-cache");
 xhr.setRequestHeader('Content-Type', 'text');
 xhr.setRequestHeader('foo', "bar");
 xhr.send( myData );

 //PseudoCode
 if( xhr.DataIsSent ) myForm.submit();

ご覧のとおり、ユーザーがフォームを送信する前に ajax の応答を待つ必要がないようにすることを目指しています。理想的には、ユーザーの操作に関係なく、これをバックグラウンドで実行したいと考えています。

私の理解では、リクエストがディスパッチされたら、手動でキャンセルしない限りリクエストは完了しますが、サーバーに到達するデータが不完全な場合がありました。

これを確実に達成する方法についての提案は大歓迎です。これまでのところ、フォームが送信されると、部分的に完了したリクエストは終了するようです。

4

1 に答える 1

1

Mozilla Developer Pages で読めるように、XmlHttpResponses もステートフルです。

jQuery を使用することをお勧めします: 1. ajax リクエストの promise を作成する 2. フォーム送信前に when().then() を使用する 3. エラーをキャッチする

そのためのコード例が必要ですか?

于 2013-03-15T07:47:20.030 に答える