有些 Web API (google map or ...) 不能讓你直用 for 呼叫數次,因此,要採用 setTimeout 處理, 如下...
<html>
<head>
<script src="jquery.js" type="text/javascript"></script>
<script type="text/javascript">
$(function () {
//準備從1/1做到5/31
var d = new Date(2011, 0, 1);
var june = new Date(2011, 5, 1);
//將待處理的日期放進Array中
var jobQueue = [];
while (d < june) {
var yy = d.getFullYear();
var mm = d.getMonth() + 1;
if (mm < 10) mm = "0" + mm;
var dd = d.getDate();
if (dd < 10) dd = "0" + dd;
//產生yyyy/MM/dd格式日期
jobQueue.push(yy + "/" + mm + "/" + dd);
d.setDate(d.getDate() + 1);
}
var $body = $("body");
function run() {
//檢查是否還有待處理工具
if (jobQueue.length > 0) {
s = jobQueue.shift();
$.post("DoSomething.aspx?date=" + s, {}, function (r) {
//顯示執行結果
$body.append("<div>" + s + ":" + r + "</div>");
//使用setTimeout可調節連續執行的速度
setTimeout(function () {
run();
}, 10);
});
}
}
run();
});
</script>
</head>
<body></body></html>
這樣就可以處理回圈呼叫了~
Ref: http://blog.darkthread.net/post-2011-06-01-ajax-loop-with-js.aspx
沒有留言:
張貼留言