返回

jquery异步循环获取不到数据是为什么?jquery异步循环获取不到数据怎么解决?

时间:2016年12月16日 04:40评论:0

描述:页面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请求"

相关文章
猜你喜欢
用户评论