作者Penghus (决战的日子)
看板Ajax
标题[问题] jquery的ajax问题
时间Thu Oct 23 23:00:47 2008
下面这一段是我的程式码
目的是想简单的模拟一下server的处理进度。
分析出textarea的行数後,然後传到server之後,然後alert出目前处理的进度。
不过我发现最後alert出来的数字都一样。
例如假设我textarea有五行文字,我预期这一段程式码是会照顺序alert出1 2 3 4 5
不过结果竟然是alert出 5 5 5 5 5 。
这样跟我原本想模拟出server处理的进度状况有点不太一样。
不知道是否有高手可以帮忙指点一下,谢谢
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=BIG5">
<title>Insert title here</title>
<script type="text/javascript" src="js/jquery-1.2.3.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$("#send").click(function(){
var x = $("#select").val();
var yy = x.split("\n");
for(var i = 0;i < yy.length; i++){
$.ajax({
type: "POST",
url: "ProgressSvlt",
data:new Date().getTime(),
success:function(data){
if(data=="ok"){
alert(i+1);
}
}
});
}
});
});
</script>
</head>
<body>
<h1>wewewew1</h1>
<textarea id="select" rows="10" cols="10"></textarea>
<br>
<input type="button" id="send" value="send" />
<br>
<div id="show"></div>
</body>
</html>
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 59.117.119.102
1F:推 tn801534:ajax是非同步的喔...所以送出5个request时间很短 10/23 23:08
2F:→ tn801534:回传资料回来的时候i已经是5了... 10/23 23:08
3F:→ tn801534:你可以去查一下ajax原来js原始的用法会比较清楚 10/23 23:09
4F:→ tn801534:所以要照顺序送出ajax的话要在第一个success里面做第二次 10/23 23:09
5F:→ tn801534:用for的话就是会一直送出...至於什麽时候回传.. 10/23 23:10
6F:→ tn801534:是看网路速度 10/23 23:10
7F:→ tn801534:当然有一个参数可以改成同步的 10/23 23:11
8F:推 TonyQ:这个问题跟上一页的[function 里的 setTimeout 与 变数] 10/24 00:50
9F:→ TonyQ:属於同一个问题 , 算是执行顺序/scope/value的问题. 10/24 00:50