我们使用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()处理程序...相关推荐

  1. jap页面使用ajax动态加载列表数据,JSF - 使用AJAX调用基于DataTable中的mimetype值加载不同形式...

    对于我的一个项目,我需要根据DataTable组件中可用的mimetype值加载不同的表单.我有标题,内容 - 中间的DataTable和页脚中的数据显示.单击DataTable条目应根据mimety ...

  2. 【看板】ajax动态获取后台传来json数据,加载到页面表格中

    ajax动态获取后台传来json数据,加载到页面表格中 摘要 1.WebApi 2.看板HTML 3.ajax获取后台传来的数据:在这里要注意声明提升,所以需要在for循环外var str1 = &q ...

  3. node.js css文件已经被加载但是无法渲染页面的问题和解决方法

    问题:在使用node.js创建了一个服务器,加载html页面后css文件已经被加载但是页面没有被渲染 如图 此时已经证明了路径是没有问题的,那么问题出现在哪里? 代码如下 const fs = req ...

  4. html加载完成 产生动作,页面加载功能设计总结

    关于"前进",我们很难给出一个准确的定义.狭义上的"前进"指的是用户触发某个交互动作进入一个新页面.如何在进入一个新页面的过程中给予用户良好的体验呢?我们可以从 ...

  5. python爬虫动态加载页面_Python+Selenium爬取动态加载页面(2)

    注: 上一篇<Python+Selenium爬取动态加载页面(1)>讲了基本地如何获取动态页面的数据,这里再讲一个稍微复杂一点的数据获取全国水雨情网.数据的获取过程跟人手动获取过程类似,所 ...

  6. html页面判断其他div为空,将外部html加载到div中 - 页面加载然后变为空白

    我确信这将会变成一件愚蠢的事情,但是自从我成为JavaScript noob以来,这里就变成了一件愚蠢的事情.将外部html加载到div中 - 页面加载然后变为空白 我想外部HTML内容加载到我的索引 ...

  7. mysql中鼠标光标消失了_为什么我这里没有显示鼠标的悬停可改变页面颜色,以为什么我加载了mysql的jar文件还是不能显示报表的内容呢?...

    源自:3-6 JSP页面实现 为什么我这里没有显示鼠标的悬停可改变页面颜色,以为什么我加载了mysql的jar文件还是不能显示报表的内容呢? 首先是index.jsp pageEncoding=&qu ...

  8. nginx配置解决vue单页面打包文件大,首次加载慢的问题

    nginx配置解决vue单页面打包文件大,首次加载慢的问题 参考文章: (1)nginx配置解决vue单页面打包文件大,首次加载慢的问题 (2)https://www.cnblogs.com/golo ...

  9. 为此计算机上所有用户安装此加载项,win7打开特定网站提示“控件无法安装,windows已阻止此软件因为无法验证发行者”怎么办...

    很多用户在运行win7操作系统的时候遇到一种情况,就是打开一些特定的网站或者使用某些网站的功能.比如用户打开工商银行网站时,就会弹出提示"控件无法安装,windows已阻止此软件因为无法验证 ...

最新文章

  1. 国内AI研究「顶不了天、落不了地」,到底什么是基础研究?
  2. 文件到Java中的byte []
  3. 实用ISA Server 2006之一: 简介
  4. bootstrap--响应式框架页面环境配置
  5. windowswps怎么以文件形式发送_手机WPS怎么以文件形式发送
  6. CentOS7安装ETCD
  7. Fogengine概述
  8. WPF 如何在代码中使用自定义的鼠标资源
  9. 实时音视频聊天中的延时问题一篇就够
  10. 华为算法精英赛(题3:概率计算)
  11. CentOS6 修改MySQL编码
  12. 大数据hadoop,spark,flink等经典电子书PDF下载
  13. 计算机输入输出设计原则,交互设计精髓4中的104条设计原则
  14. 禁用驱动数字签名验证
  15. 遥感影像镶嵌及实现(四)
  16. 中学计算机课体育课被占用,那些年被占用的体育课
  17. 强制使用ie浏览器使用最高版本
  18. ansible playbook 中的变量用法相关介绍(三)----set_fact模块,跨play调用变量
  19. anemometer mysql5.6_Anemometer|Anemometer(mysql慢查询日志分析工具)下载免费版 - 欧普软件下载...
  20. 改变命运的早上三分钟 之 三

热门文章

  1. qq浏览器翻译功能启用划词插件教程
  2. Win7系统防火墙设置不了怎么办
  3. mac下终端命令行下添加mysql命令
  4. Spring事务配置实例
  5. Js数组去重的多种方法
  6. arm放弃服务器芯片,ARM溃败:Applied Micro拆分ARM架构服务器芯片业务
  7. java中字典算法_Java字典生成算法讲解
  8. 开发中常见的@NotNull,@NotBlank,@NotEmpty注解的区别
  9. java中的Static、final、Static final各种用法
  10. SpringBoot整合阿里云OSS文件上传、下载、查看、删除