4

そのため、数メガバイトのサイズのデータ​​の数十個のチャンクをダウンさせるためのajax呼び出しがあり、その後、html5ファイルシステムAPIを介してデータをローカルに保存します。

ajax 呼び出しが完了する前に、ユーザーがページから離れないようにしたかったのです。イベントを調べてonbeforeunload、ajax 呼び出しが完了するまでユーザーがページにとどまる必要があることを通知することにしました。AJAX 呼び出しの前に次を設定し、AJAX 呼び出しの終了/成功時にwindow.onbeforeunload.

window.onbeforeunload = function(){
    return "Information is still downloading, navigating away from or closing "+ 
        "this page will stop the download of data";
}

ページを閉じるか、ページから移動しようとすると、予想どおりポップアップ メッセージが表示され、ユーザーにとどまるように通知されます。ただし、ページにとどまることを確認すると、ajax 呼び出しは中断したところから再開されません。ajax呼び出しが一時停止/停止するのを防ぐ方法、または実行を続行/再開する方法はありますか?

この投稿のタイトルに記載されている必要な機能を実装するためのあらゆるアイデアを受け入れます。

4

1 に答える 1

6

.jsファイルにグローバルを作成できることを確認してください...

var request;

次に、この変数に ajax 呼び出しを割り当てます。

request = $.ajax{
 //Ajax
 //Stuff
 //Goes
 //Here
}

関数内にwindow.unbeforeunload、この条件ステートメントを追加します。

window.onbeforeunload = function(){
  if(!request){
    return "Request not initiated";
  }else{
    //Request is in progress...
    //You can use request.abort() if you need
  }
}

request編集:オブジェクトで使用できるいくつかのメソッドについて詳しく説明するには、このページをチェックしてください。(たとえば、.doneまたは.alwaysが状況に適している場合があります)

于 2013-08-05T12:20:35.870 に答える