次のように、jQuery と Ajax を組み合わせてユーザー アップロード フォームのフロントエンドを管理する場合:
$('form :button').click(function(){
var formData = new FormData($("form")[0]);
$.ajax({
url: '/upload',
type: 'POST',
xhr: function() {
myXhr = $.ajaxSettings.xhr();
if(myXhr.upload){
myXhr.upload.addEventListener('progress', progressHandlingFunction, false);
}
return myXhr;
},
data: formData,
success: function (res) {
alert("Uploaded");
},
cache: false,
contentType: false,
processData: false
});
});
アップロードが完了するまですべてのブラウザの動きを停止したり、ページを離れるとアップロードが中断されることをユーザーに通知するasync:false
など、ある種の jQuery 関数を使用したりすることは理にかなっていますか?beforeunload
$(window).bind('beforeunload', function(){
return 'If you leave this page, your upload will not complete! Continue?';
});
この警告がファイルのアップロード中にのみ表示されるように、アップロードの進行中にのみ関数を実行するオプションが Ajax にありますか?