AJAX 学习笔记[五] AJAX 如何处理多个异步请求
来源:互联网 发布:淘宝原单店铺推荐 编辑:程序博客网 时间:2024/06/06 03:14
前面的示例中,都是通过1个全局变量的xmlHttp 异步对象对所有异步请求进行处理的。这样做通常会存在一些问题。比如:当第1个异步请求尚未完成,很可能就已经被第2个异步请求所覆盖。
解决办法:通常是将xmlHttp 对象作为局部变量来处理,并且在收到服务器端的返回值后手动将其删除。
客户端(9-6.html)
代码如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title>多个异步对象</title>
<script language="javascript">
function createQueryString(oText){
var sInput = document.getElementById(oText).value;
var queryString = "oText=" + sInput;
return queryString;
}
function getData(oServer, oText, oSpan){
var xmlHttp; //处理为局部变量
if(window.ActiveXObject)
xmlHttp = new ActiveXObject("Microsoft.XMLHttp");
else if(window.XMLHttpRequest)
xmlHttp = new XMLHttpRequest();
var queryString = oServer + "?";
queryString += createQueryString(oText) + "×tamp=" + new Date().getTime();
xmlHttp.onreadystatechange = function(){
if(xmlHttp.readyState == 4 && xmlHttp.status == 200){
var responseSpan = document.getElementById(oSpan);
responseSpan.innerHTML = xmlHttp.responseText;
delete xmlHttp; //收到返回结果后手动删除
xmlHttp = null;
}
}
xmlHttp.open("GET",queryString);
xmlHttp.send(null);
}
function test(){
//同时发送两个不同的异步请求
getData('9-5.aspx','first','firstSpan');
getData('9-5.aspx','second','secondSpan');
}
</script>
</head>
<body>
<form>
first: <input type="text" id="first">
<span id="firstSpan"></span>
<br>
second: <input type="text" id="second">
<span id="secondSpan"></span>
<br>
<input type="button" value="发送" onclick="test()">
</form>
</body>
</html>
由于函数中的局部变量是每次调用时单独建立的,函数执行完便自动销毁。所以,这时测试多个异步请求便不会发生冲突和数据覆盖的情况了。
服务器端(9-5.aspx)
代码如下:
<%@ Page Language="C#" ContentType="text/html" ResponseEncoding="gb2312" %>
<%@ Import Namespace="System.Data" %>
<%
Response.Write(Request["oText"]);
%>
完毕。
- AJAX 学习笔记[五] AJAX 如何处理多个异步请求
- AJAX学习笔记之 处理多个异步请求
- Ajax 同时处理多个异步请求
- LoadRunner如何处理AJAX异步请求
- 如何处理$.ajax的异步请求
- Ajax异步请求 笔记
- JS中如何处理多个ajax并发请求?
- 实现ajax异步请求笔记
- AJAX多个请求的处理-ajax对象池
- Ajax学习笔记(五)
- java web 学习笔记四 使用ajax响应异步请求
- PHP 如何处理 AJAX 请求
- Ajax多请求处理
- 多个ajax请求的同步异步问题
- ajax调用action类处理异步请求
- ajax异步请求,session超时处理
- ajax异步请求,session超时处理
- 异步ajax请求的顺序处理方法
- Linux SQLite安装
- 使用 GDB 调试多进程程序
- DHCP Transaction ID生成和使用方法
- 请教一下
- AJAX 学习笔记[四] AJAX 对服务器返回的XML 的处理
- AJAX 学习笔记[五] AJAX 如何处理多个异步请求
- 在Lua中调用C++函数
- debug下指针没被初始化
- DirectFB的学习
- AJAX 学习笔记[六] AJAX 轻量级框架介绍
- 用Java语言来绘制向量场
- 四种java解析xml的方法
- 浪潮实习8.18
- AJAX 学习笔记[七] AJAX 与JQuery 框架