之前做项目时候,用到一个表格控件,它的数据是异步加载的,我在这个表格绑定数据的函数下面友做了一些业务处理,运行页面的时候,用浏览器在我写业务处理那地方打上断点跟踪,它确实执行了,可以最后显示的时候,它的处理被覆盖了,我很纳闷,当时也知道是这个表格绑定函数那出问题了,可是时间紧,它的函数是封装的,没有去具体跟踪,就直接让我的那部分业务处理延迟200ms执行,这样就好了,这是个笨法,不过也是个有效的办法,呵呵。
后来看了下文档,查了些资料,其实原理应该是这样的:
默认设置下,所有请求均为异步请求。如果需要发送同步请求,请将此选项设置为 false。注意,同步请求将锁住浏览器,用户其它操作必须等待请求完成才可以执行。
复制代码 代码如下:
var temp;
$.ajax({
async: false,
type : "POST",
url : defaultPostData.url,
dataType : 'json',
success : function(data) {
temp=data;
}
});
alert(temp);
这个ajax请求则为同步请求,在没有返回值之前,alert(temp)是不会执行的。
如果async设置为:true,则不会等待ajax请求返回的结果,会直接执行ajax后面的语句。
您可能感兴趣的文章:- Ajax实现搜索引擎自动补全功能
- 详解js的延迟对象、跨域、模板引擎、弹出层、AJAX【附实例下载】
- JavaScript的History API使搜索引擎抓取AJAX内容
- 如何让搜索引擎抓取AJAX内容解决方案
- AJAX 支持搜索引擎问题分析
- 浅析ajax请求json数据并用js解析(示例分析)
- AJAX跨域请求json数据的实现方法
- 原生 JS Ajax,GET和POST 请求实例代码
- Ajax请求二进制流进行处理(ajax异步下载文件)的简单方法
- Ajax引擎 ajax请求步骤详细代码