关于ajax的多次请求问题
我们在用ajax请求数据时,可能会遇到一次点击多次触发的可能。
(比如说:ajax 的 onreadystatechange 事件就会触发多次;这是因为 onreadystatechange 是一个事件句柄。
它的值 (state_Change) 是一个函数的名称,当 XMLHttpRequest 对象的状态发生改变时,会触发此函数。
状态从 0 (uninitialized) 到 4 (complete) 进行变化。仅在状态为 4 时,我们才执行代码。”
每次XMLHttpRequest 对象的状态发生改变时,会触发此函数。
一共会触发 4 次,从 0 到 4。)【PS:当然这里引用的例子不完全符合工作时遇到的问题】此时,我们需要一个可以来终止程序的方法。
exit 和abort 都是用来终止程序的函数,下面我们来讲一下这两者的不同之处。
exit会做一些释放工作:释放所有的静态的全局的对象,缓存,关掉所有的I/O通道,然后终止程序。如果有函数通过atexit来注册,还会调用注册的函数。不过,如果atexit函数扔出异常的话,就会直接调用terminate。
abort:立刻terminate程序,没有任何清理工作。
以上就是小编为大家带来的关于ajax的多次请求问题全部内容了,希望大家多多支持我们~
相关推荐
-
防止重复发送Ajax请求的解决方案
在页面中有多个按钮,点击该按钮可以异步的去服务端读取数据,然后在前端将数据展示出来. 每个按钮点击请求的页面都是同一个,但是请求的参数不同,所以返回的内容就不同. 在连续点击多个按钮的时候就会发出多个异步请求.那么根据请求返回的快慢(因为不同按钮参数不同,返回内容不同,所以会有快慢之分),数据会依次的展示出来,那么就会出现一个先点击的按钮,由于他请求的数据量比较大,导致数据被后显示出来. 一.问题解决 解决这种问题有两种方式: 1.当连续进行多个请求,并且请求的url地址相同时.放弃前面的所有请
-
JS Ajax请求如何防止重复提交
好长时间没写js代码了刚好遇到这样的问题.我们系统多数表单没有做防止重复提交的. 由于不想在后端这边处理,因为假如由后端处理的话,就需要在页面加载的时候给出一次性的token值,加大了开发的工作量不说,还容易忘记做这个,同时,ajax也不好处理,需要提交失败的话同时返回新的token值. 所以我想在,js这边动手.其实以前和前端提过,久久不见动静,就只好弄块砖丢出去了.思路是,覆盖掉$.ajax,在这里面处理掉防止重复提交的问题,而前端的业务开发不受影响,不改代码,无感知. 我想架构的目的之一,
-
Jquery 一次处理多个ajax请求的代码
复制代码 代码如下: $(document).ready(function () { $('#getsetgo').click(function () { $.when($.ajax("page1.php"), $.ajax("page2.php")).done(function(a1, a2){ $('#id1').html(a1[0]); $('#id2').html(a2[0]); }); }); }); jquery 1.5发布后,其中新增加方法jQuery
-
基于JQuery的$.ajax方法进行异步请求导致页面闪烁的解决办法
情景 目前有个需求是在文本框填入内容,自动触发keyup事件,下拉列表会自动过滤相应的选项,但是使用了$,ajax后发现,每次触发事件时,都导致整个网页闪烁,触发了全局ajax事件 代码片段 $.ajax({ type: "POST", url: root + "/xxx, data: requestData, dataType: "json", success: function(data){ // 清空列表 $("#formOpinion #
-
原生 JS Ajax,GET和POST 请求实例代码
javascript/js的ajax的GET请求代码如下所示: <script type="text/javascript"> /* 创建 XMLHttpRequest 对象 */ var xmlHttp; function GetXmlHttpObject(){ if (window.XMLHttpRequest){ // code for IE7+, Firefox, Chrome, Opera, Safari xmlhttp=new XMLHttpRequest();
-
关于ajax的多次请求问题
我们在用ajax请求数据时,可能会遇到一次点击多次触发的可能. (比如说:ajax 的 onreadystatechange 事件就会触发多次:这是因为 onreadystatechange 是一个事件句柄. 它的值 (state_Change) 是一个函数的名称,当 XMLHttpRequest 对象的状态发生改变时,会触发此函数. 状态从 0 (uninitialized) 到 4 (complete) 进行变化.仅在状态为 4 时,我们才执行代码." 每次XMLHttpRequest 对象
-
jquery+ajax实现跨域请求的方法
本文实例讲述了jquery+ajax实现跨域请求的方法.分享给大家供大家参考.具体实现方法如下: 说明:这里的dataType 为 "jsonp" :type 只能为 GET 前台请求代码如下: 复制代码 代码如下: $.ajax({ type: "GET", url: "http://www.xxx.com/Rest/ValidAccountsExists.aspx?accounts=admin", dataType: "j
-
当jquery ajax遇上401请求的解决方法
jquery ajax是个很常用接口,而在请求时候,可能存在响应401的情况(身份认证过期或未登录),比较容易出现在混合应用上,如何进行身份认证,重发失败请求,还是值得注意的. ajax请求有两种方式 1. 回调 最常写的方式,成功失败处理以回调方式传入. $.ajax({ ajax参数... success : xxxxxx error: xxxxxx }); 2. Deferred方式 Deferred模式我在<js异步编程>有说明, ajax调用本身返回就是一个Deferred对象,成功
-
原生JS实现ajax与ajax的跨域请求实例
一.原生JS实现ajax 第一步获得XMLHttpRequest对象 第二步:设置状态监听函数 第三步:open一个连接,true是异步请求 第四部:send一个请求,可以发送一个对象和字符串,不需要传递数据发送null 第五步:在监听函数中,判断readyState=4&&status=200表示请求成功 第六步:使用responseText.responseXML接受响应数据,并使用原生JS操作DOM进行显示 var ajax = new XMLHttpRequest(); ajax.
-
Django处理Ajax发送的Get请求代码详解
Django处理Ajax发送的Get请求实例,Ajax优点在一是异步请求,无需等待响应就可以再次发起请求,而是局部刷新,避免整个页面刷新的网页闪动. 打开命令行窗口,输入命令,创建django工程: django-admin startproject djajaxget cd djajaxget python manage.py startapp demo 使用PyCharm打开上一步创建的工程,在工程同名文件夹的settings.py文件,修改部分代码,注册应用,配置模板路径.静态文件路径,修
-
Ajax发送和接收请求
首先Ajax的不刷新页面提交数据,现在应用非常广泛,废话不多说马上进主题!! 基本上浏览器能接收的信息,Ajax都可以接收,ex:字符串,html标签,css标签,xml格式内容,json格式内容等等..... <script> // IE浏览器 if(ActiveXObject){ // 微软目前AJAX最新版本 var ajax = new ActiveXObject("Msxm12.XMLHTTP.6.0"); }else{ // 主流浏览器 var ajax = n
-
Ajax jsonp跨域请求实现方法
什么是跨域? 简单的来说,出于安全方面的考虑,页面中的JavaScript无法访问其他服务器上的数据,即"同源策略".而跨域就是通过某些手段来绕过同源策略限制,实现不同服务器之间通信的效果. 具体策略限制情况可看下表: URL 说明 允许通信 http://www.a.com/a.js http://www.a.com/b.js 同一域名下 允许 http://www.a.com/lab/a.js http://www.a.com/script/b.js 同一域名下不同文件夹 允许 h
-
jQuery Ajax实现跨域请求
本文实例为大家分享了jQuery Ajax跨域请求的具体代码,供大家参考,具体内容如下 html 代码清单: <script type="text/javascript" src="http://www.youxiaju.com/js/jquery-1.4.2.min.js"></script> <script type="text/javascript"> $(function(){ $.ajax( { ty
随机推荐
- SQLite教程(十四):C语言编程实例代码(2)
- Angular ng-repeat遍历渲染完页面后执行其他操作详细介绍
- 代码中到底应不应当写注释?
- vue-cli之router基本使用方法详解
- Vue.js学习之计算属性
- iOS将视频录像切成一张张缩略图
- Oracle数据库如何创建第一张表
- MVC+EasyUI+三层新闻网站建立 实现登录功能(四)
- img标签中onerror用法
- PHP获取远程图片并保存到本地的方法
- smarty的保留变量问题
- Android 代码写控件代替XML简单实例
- Android实现文件的分割和组装
- js 处理数组重复元素示例代码
- PHP配置把错误日志以邮件方式发送方法(Windows系统)
- Android应用中使用DOM方式解析XML格式数据的基本方法
- Java解析XML格式数据的方法详解
- Java 中解决Unsupported major.minor version 51.0的问题
- 将字符串转换成System.Drawing.Color类型的方法
- C语言 数组中重复的数字分析及方法