Ajax请求中的async:false/true】的更多相关文章

[Ajax请求中的async:false/true的作用] 作者:https://www.cnblogs.com/mmzuo-798/p/7098979.html 前言: 昨天在做倒计时修改的时候,发现多次点击按钮,我明明做了限制,点击多次的时候发现怎么都会请求了两次,然后我写的是请求成功添加文字,结果总是会添加两次文字, 说明ajax请求了两次了,在网上查了下跟异步有点关系,没办法,我把ajax异步改成同步了,结果就可以了,我想要的文字也是只会添加一行了!下面关于ajax 的 async:fa…
Ajax请求中的async:false/trueasync. 默认是 true,即为异步方式,$.ajax执行后,会继续执行ajax后面的脚本,直到服务器端返回数据后,触发$.ajax里的success方法,这时候执行的是两个线程.async 设置为 false,则所有的请求均为同步请求,在没有返回值之前,同步请求将锁住浏览器,用户其它操作必须等待请求完成才可以执行. 上网查阅了一些资料,发现Jquery的API中提到,JSONP格式不支持跨域同步.因为ajax的核心是通过XmlHttpRequ…
test.html <a href="javascript:void(0)" onmouseover="testAsync()"> asy.js function testAsync(){    var temp;    $.ajax({        async: false,        type : "GET",        url : 'tet.php',        complete: function(msg){  …
async: false,(默认是true);false为同步,Ajax请求将整个浏览器锁死,只有tet.php执行结束后,才可以执行其它操作. 当async: true 时,ajax请求是异步的.但是其中有个问题:ajax请求和其后面的操作是异步执行的,那么当前面的还未执行完,就可能已经执行了 ajax请求后面的操作,…
async. 默认是true,即为异步方式,$.Ajax执行后,会继续执行ajax后面的脚本,直到服务器端返回数据后,触发$.Ajax里的success方法,这时候执行的是两个线程.若要将其设置为false,则所有的请求均为同步请求,在没有返回值之前,同步请求将锁住浏览器,用户其它操作必须等待请求完成才可以执行. 下面查看一个示例: var temp; $.ajax({ async: false, type : "POST", url : defaultPostData.url, da…
虽然说ajax用来执行异步请求的比较多,但有时还是存在需要同步执行的情况的. 比如:我需要通过ajax取执行请求以返回一个值,这个值在ajax后面是需要使用到的,这时就不能用异步请求了.这时候就需要使用到async这个属性了. async:true,(默认),异步方式,$.Ajax执行后,会继续执行ajax后面的脚本,直到服务器端返回数据后,触发$.Ajax里的success方法,这时候执行的是两个线程. async:false,同步方式,所有的请求均为同步请求,在没有返回值之前,同步请求将锁住…
页面中有一个IsLogin()方法,用以判断该请求的触发者是否登录,如果登录了,则执行查询操作,如果没有登录,则Redirect()至登录界面 页面使用了较多的Ajax请求来获取数据,而在Ajax请求中,若运行至Context.Response.Redirect()则出错. 网上的一些资料给出的解决方案是在Ajax请求中增加一个状态码,然后人为的去获取该状态码,进行重定向. IsLogin()方法需要同时处理普通请求与Ajax请求,所以,在处理之前,应当知道当前请求是否为Ajax请求. 参考了网…
之前使用这两个请求的时候,主要从几个方面考虑: 1.语义,get就是从服务器获取,一般就是获取/查询资源信息.post就是提交给服务器,一般就是更新资源信息. 2.请求文件大小,get一般只有2k这样,post则理论上没有限制. 3.GET方式请求的数据会被浏览器缓存起来,因此其他人就可以从浏览器的历史记录中读取到这些数据,例如账号和密码等. 还有一点,但是这点在ajax请求中中是看不到的:GET请求会将参数跟在URL后进行传递,而POST请求则是作为HTTP消息的实体内容发送给WEB服务器.…
jquery Ajax请求中显示Loading... $('#btnTest').click(function(){      $.ajax({           url ---- ,根据你需要设置url路径           type:'post',           data:'name=Test',           timeout:15000,           beforeSend:function(XMLHttpRequest){               //alert…
一.在ajax请求中,contentType 和 dataType 的区别? 1.contentType 内容类型. 1.1默认是 "application/x-www-form-urlencoded",这种情况. contentType :"application/x-www-form-urlencoded; charset=UTF-8", 此时,默认值适合大多数情况,当你明确的传递一个content-type给$.ajax() 那么他必定会发送给服务器.(没有数…
之前不知道这个参数的作用,上网找了前辈的博客,在此收录到自己的博客,希望能帮到更多的朋友: test.html <a href="javascript:void(0)" onmouseover="testAsync()"> asy.js function testAsync{    var temp;     $.ajax({         async: false,         type : "GET",         ur…
在常规的服务器端程序设计中, 比如说爬虫程序, 发送http请求的过程会使整个执行过程阻塞,直到http请求响应完成代码才会继续执行, 以php为例子 $url = "http://www.google.com.hk"; $result = file_get_contents($url); echo $result; 当代码执行到第二行时,程序便陷入了等待,直到请求完成,程序才会继续往下跑将抓取到的html输出.这种做法的好处是代码简洁明了,运行流程清晰, 容易维护. 缺点就是程序的运…
现在ajax应用已经相当广泛了,有很多不错的ajax框架可供使用.ajax是一个异步请求,也主要是一种客户端的脚本行为.那么,如何在请求之前为请求添加特殊的一些头部信息呢? 下面是一个简单的例子,我用jquery编写,它的ajax函数中,有一个beforeSend方法,这个方法接受一个参数,就代表了发起异步请求的XMLHttpRequest对象,我们可以用该对象的setRequestHeader方法实现我们的目的 <%@ Page Language="C#" AutoEventW…
现在ajax应用已经相当广泛了,有很多不错的ajax框架可供使用.ajax是一个异步请求,也主要是一种客户端的脚本行为.那么,如何在请求之前为请求添加特殊的一些头部信息呢? 下面是一个简单的例子,我用jquery编写,它的ajax函数中,有一个beforeSend方法,这个方法接受一个参数,就代表了发起异步请求的XMLHttpRequest对象,我们可以用该对象的setRequestHeader方法实现我们的目的 为什么要setRequestHeader?比如,在及时通信系统中,每次获取消息或者…
当我们发送AJAX请求的数据中带有数组时,是不能像普通JSON数据一样,直接放在data里发送给后台,比如有这样一个数据需要发送给后台: { "orderId": 22, "resourceJson": [ { "carCapacity": 223, "carNumber": "123", "driverInfo": "123", "failReason&q…
http://www.tangshuang.net/2271.html 在上一篇<服务端php解决jquery ajax跨域请求restful api问题及实践>中,我简单介绍了如何通过服务端解决jquery ajax的跨域请求问题,但是,在这个过程中,我们会发现,在很多post,put,delete等请求之前,会有一次options请求.本文主要是来讨论一下这是什么原因引起的. 根本原因就是,W3C规范这样要求了!在跨域请求中,分为简单请求(get和部分post,post时content-t…
//事件触发顺序ajaxStart,ajaxSend,ajaxSuccess或ajaxError,ajaxComplete,ajaxStop $(document).ajaxStart(function (event) { /* * 每一个ajax即将发送的时候触发该事件,只有一个事件对象参数 */ console.log('ajaxStart'); }) $(document).ajaxSend(function (event,xhr,opts,err) { /* * 每一个ajax即将发送的…
背景知识: 我们会发现,在很多post,put,delete等请求之前,会有一次options请求.本文主要是来讨论一下这是什么原因引起的. 根本原因就是,W3C规范这样要求了!在跨域请求中,分为简单请求(get和部分post,post时content-type属于application/x-www-form-urlencoded,multipart/form-data,text/plain中的一种)和复杂请求.而复杂请求发出之前,就会出现一次options请求. 什么是options请求呢?它…
背景 有一个前后端分离的VUE项目来发送ajax请求, 查看Nginx日志或使用Chrome Dev Tools查看请求发送情况时, 会看到每次调后台API的请求之前, 都会发送一个OPTIONS请求, 无论API要求请求的方法是GET或POST. 为什么会发送这个OPTIONS请求? 困扰了项目组的前端同学和后端同学很久,今天正好听他们说起这个问题,就研究了一下原理. 过程 首先, 在js代码里是没写要发送OPTIONS请求的, 后台API要的请求方法不是GET就是POST, 也只发送过这两种…
当我们有大量数据要传送时最好的办法是一次发出多个只传递少量信息的Ajax调用时.如果你正用一个Ajax调用发送大量数据,那么最好是结束这种做法,因为这样做并不能节约时间. 因此,需要传送大量数据能成为我们在GET和POST之间犹豫不决的理由吗?这两个方法都是为不同的目的而设计的, 两者的不同也在于其使用目的.这一说法不仅适用于GET和POST的使用,也适用于其他的方法. GET的目的就如同其名字一样是用于获取信息的.它旨在显示出页面上你要阅读的信息.浏览器会缓冲GET请求的执行结果, 如果同样的…
在ASP.NET mvc中如果在表中使用了@Html.AntiForgeryToken(),ajax post不会请求成功 解决方法是在ajax中加入__RequestVerificationToken: function Like(id) { // 获取form表单 var form = $('form'); // 获取token var token = $('input[name="__RequestVerificationToken"]', form).val(); $.ajax…
今天突然收到一个bug,有用户在其浏览器环境中一直无法提交内容,使用的是UC浏览器.当换成Chrome时,内容能够正常提交.鉴于本地没有一直使用Firefox 以及Chrome,于是去下载了一个UC Browser来进行测试.本地提交时,控制台一直会报这个错误: Uncaught TypeError: this is not a Date object. at getTime (<anonymous>) 当从错误信息里面,我有点懵,虽然知道是问题出在getTime 这个方法,然后在Visual…
contentType: 告诉服务器,我要发什么类型的数据,默认值: "application/x-www-form-urlencoded". dataType:告诉服务器,我要想什么类型的数据.如果不指定,jQuery 将自动根据 HTTP 包 MIME 信息来智能判断,比如XML MIME类型就被识别为XML.在1.4中,JSON就会生成一个JavaScript对象,而script则会执行这个脚本.随后服务器端返回的数据会根据这个值解析后,传递给回调函数.可用值: "xm…
IPv6地址后的百分号: 对于连入网络但没有IPv6路由器或DHCPv6服务器的IPv6客户端,它们始终使用fe80::/64链路本地网络地址.如果运行Windows的计算机中有多个网络适配器连接到不同的网段,可以在IP地址后加百分号和区域ID数字来区分不同的网络,如下所示: ■ fe80::d84b:8939:7684:a5a4%7 ■ fe80::462:7ed4:795b:1c9f%8 ■ fe80::2882:29d5:e7a4:b481%9 最后两个字符分别表示前面网络所连接的区域ID…
对需要传递的中文参数先进行两次转码: 1.js文件中使用encodeURI()方法. var url = "Validate.jsp?id=" + encodeURI(encodeURI(idField.value)); 2.在后台中对传递的参数进行URLDecoder解码 String username = URLDecoder.decode(request.getParameter("id"),"UTF-8"); 版权声明:本文为博主原创文章…
1.汉字参数直接跟在请求连接的后面,这样需要使用encodeURIComponent(fileName)或者encodeURI(fileName)转码两次 后台使用URLDecoder.decode(fileName, "UTF-8"); 2.如果参数发在data属性后,可以只使用encodeURIComponent(fileName)或者encodeURI(fileName)转码一次.后台使用URLDecoder.decode(fileName, "UTF-8")…
通过ajax的方式发送两个数据进行加法运算 html页面 <body> <h3>index页面 </h3> <input type="text" name="cal_1">+ <input type="text" name="cal_2">= <input type="text" name="cal_3"> <…
import requests# import warnings# warnings.filterwarnings("ignore") #方法一#requests.packages.urllib3.disable_warnings() #方法二import urllib3urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning) #方法三a=requests.get("https://www.sogo…
前言 在做项目的过程中遇到一个bug就是:使用了alert语句后,代码才能正确执行,没使用就执行不成功. 后来我就用把console.log,代码就不能正确执行. 于是我就去比较了下consol.log和alert有什么不同 console.log与alert的不同 [1]alert() [1.1]有阻塞作用,不点击确定,后续代码无法继续执行 [1.2]alert()只能输出string,如果alert输出的是对象会自动调用toString()方法 e.g. alert([1,2,3]);//'…
1.比如2个ajax请求,把第二个ajax请求放在第一个ajax请求success方法里面. 2.ajax请求时添加 async: false,//使用同步的方式,true为异步方式.结果是只有等服务器返回信息以后才会继续执行后面的代码.默认为true. 3. ajax6 = $.ajax( { url: "/Home2/SelectyjLoginuser", dataType: "json", type: "post", success: fu…