ajax离开页面方法,如果用户在页面加载完成之前离开页面,则触发jQuery ajaxError()处理程序...
我們使用jQuery的全局ajaxError()處理函數來警告用戶任何AJAX失敗:
$(document).ajaxError(function() {
$("There was a network or server error. Please try again later.").dialog({
title: "Error",
modal: true,
resizable: false,
buttons: { 'Ok': function() { (this).dialog("close"); } }
});
});
不幸的是,如果用戶在完成加載之前離開頁面,則也會觸發此全局錯誤處理程序。下面是重現該錯誤的步驟:
用戶訪問頁面A,頁面A包含通過AJAX加載的元素。
A頁上的AJAX元素開始加載。
在頁面A上的AJAX元素加載完成 之前, 用戶單擊鏈接即可訪問頁面B。
在瀏覽器重定向到頁面B之前,錯誤對話框將短暫出現。
知道當錯誤直接由用戶訪問新頁面導致時,如何使ajaxError()不觸發嗎?
更新:這是我的代碼,在注釋中加入了建議之后:
// I added a 3 second delay to our error dialog, enough time
// for the user to leave for a new page:
$(document).ajaxError(function() {
setTimeout(my_error_handler, 3000);
});
// Warn user before leaving page if AJAX is still loading.
// Not sure I'll keep this:
$(document).ajaxStart(function() {
ajaxing = true;
});
$(document).ajaxStop(function() {
ajaxing = false;
});
window.onbeforeunload = function() {
if (typeof(ajaxing) != 'undefined' && ajaxing) {
return "Page elements are still loading!";
}
};
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的ajax离开页面方法,如果用户在页面加载完成之前离开页面,则触发jQuery ajaxError()处理程序...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: IDEA 生成get和set方法
- 下一篇: 高中关于人工智能方面的课题_2019山东