ajax 同步请求和异步请求的差异分析

时间:2011-07-05 12:36:04 

ajax 同步请求和异步请求的差异分析,需要的朋友可以参考下。

代码一:


Synchronize = function(url,param) {
function createXhrObject() {
var http;
var activeX = [ "MSXML2.XMLHTTP.3.0", "MSXML2.XMLHTTP", "Microsoft.XMLHTTP" ];
try {
http = new XMLHttpRequest;
} catch (e) {
for (var i = 0; i < activeX.length; ++i) {
try {
http = new ActiveXObject(activeX[i]);
break;
} catch (e) {}
}
} finally {
return http;
}
}
var conn = createXhrObject();
conn.open("POST", url, false);//ajax同步
conn.send(param);
var strReturn = conn.responseText;
alert("1");
if (strReturn != "") {
return Ext.decode(conn.responseText);
} else {
return null;
}
alert("2");
};

代码二:
Ajax 同步请求方式:

 


Synchronize = function(url,param) {
function createXhrObject() {
var http;
var activeX = [ "MSXML2.XMLHTTP.3.0", "MSXML2.XMLHTTP", "Microsoft.XMLHTTP" ];
try {
http = new XMLHttpRequest;
} catch (e) {
for (var i = 0; i < activeX.length; ++i) {
try {
http = new ActiveXObject(activeX[i]);
break;
} catch (e) {}
}
} finally {
return http;
}
}
var conn = createXhrObject();
conn.open("POST", url, true);//ajax异步
conn.send(param);
var strReturn = conn.responseText;
alert("1");
if (strReturn != "") {
return Ext.decode(conn.responseText);
} else {
return null;
}
alert("2");
};

同步和异步的差异如下:

conn.open('POST',Url,true); // ajax异步
conn.open('POST',Url,false); // ajax同步

对于代码二,为异步的ajax请求,执行结果为:先执行alert(2)再执行alert(1), 异步的意思就是说一旦conn.open请求一发出,前端不去等待它的响应便执行后面的代码,所以alert(2)先执行了,然后当响应response到达以后才执行alert(1);

对于代码一,为同步的ajax请求,执行结果为:先执行alert(1)再执行alert(2), 同步的意思就是说一旦conn.open请求一发出,前端就去等待它的响应,响应完成以后,alert(1)先执行了,然后alert(2);

标签:ajax,同步,异步
0
投稿

猜你喜欢

  • MySQL数据库磁盘优化

    2008-11-24 17:29:00
  • 将一个图片以二进制值的形式存入Xml文件中

    2008-09-04 11:24:00
  • ORACLE常见错误代码的分析与解决(一)

    2010-08-02 13:20:00
  • 如何编写CSS代码才能更有效率

    2007-11-07 18:51:00
  • 如何给eWebEditor编辑器加上运行代码框功能

    2007-09-25 07:02:00
  • sql中 RecordCount=-1问题

    2008-03-02 17:18:00
  • WEB页面工具之语言XML的定义

    2008-05-29 11:29:00
  • js实现(层,表格)元素圆角的函数

    2008-01-01 16:40:00
  • Linux ORCLE数据库增量备份脚本

    2009-11-21 09:43:00
  • 如何使用 SQL Server 数据库查询累计值

    2008-12-03 15:27:00
  • Oracle数据库系统使用经验六则

    2010-07-26 13:22:00
  • 为MySQL提权简单方法

    2009-08-29 15:21:00
  • 如何把图片也存到数据库中去?

    2009-11-06 13:56:00
  • SQL Server中通过reverse取某个最后一次出现的符号后面的内容(字符串反转)

    2012-07-11 15:59:36
  • SQLSERVER 创建索引实现代码

    2012-04-13 12:17:05
  • Oracle SQL性能优化系列学习三

    2010-07-23 13:08:00
  • IE6,7下实现white-space:pre-wrap;

    2009-12-31 18:30:00
  • 交互设计实用指南系列(1) – “有效性”之“操作入口明确”

    2009-12-11 18:42:00
  • jQuery 1.4官方中文手册[译]

    2010-01-20 10:46:00
  • 提高MySQL查询效率的三个技巧

    2009-02-11 13:19:00
  • asp之家 网络编程 m.aspxhome.com