描述:页面html的repeater控件中有一个span,需要根据指定ID异步获取相关信息。
html代码:
1 <table id="repTable"……>
2 ……
3 <span id="<%# Eval("Id") %>" class="address"></span>
4 </table>
jquery代码:
1 $(document).ready(function(){
2 $("#repTable span.address").each(function(){
3 var spanTemp = $(this);
4 $.ajax({
5 type: "get",
6 url: "SceneryAjaxCall.aspx",
7 data: "sid="+$(this).attr("id"),
8 cache: true,
9 dataType: "html",
10 success: function(msg){
11 spanTemp.append(msg);
12 }
13 });
14 });
15 });
其中在写jquery代码时,我遇到了下面几个问题:
(1)开始没写第三行,而是在第十一行直接调用的$(this),报错“不能给回调函数赋值”。原因是回调后对象已经发生改变,所以需要事先保存;
(2)没写dataType,发现不能返回msg,不知道为什么;
javascript是单线程,你想异步循环获取,可以使用把相关AJAX请求放在一个队列依次发送请求。否则话,你循环获取,从服务器端返回的数据无法找到对应的处理函数
--> google search: ajax并发
--> the article:"自动排队的异步Ajax请求"