2 moses john Moses_john 于 2016.09.14 10:46 提问

js中for循环停顿的问题

window.onload = function ()
{
var rows = document.getElementById("GridView1").getElementsByTagName("tr");
var raphael = new Raphael('raphael_1', 1900, 870);
var arry = new Array(); //定义一线数组
for (var i = 1; i < rows.length; i++)
{
var h = rows[i].cells[0].innerText;
var arry = h.split(",");
var s_x1 = arry[0];
var s_y1 = arry[1];
var s_x2 = arry[2];
var s_y2 = arry[3];
s_x1 = (parseFloat(s_x1) + parseFloat(500)) * 0.6;
s_y1 = (parseFloat(s_y1) + parseFloat(1200)) * 0.6;
s_x2 = (parseFloat(s_x2) + parseFloat(500)) * 0.6;
s_y2 = (parseFloat(s_y2) + parseFloat(1200)) * 0.6;
alert("这里是停顿");
var p = raphael.path('M{0},{1} L{2},{3},Z', s_x1, s_y1, s_x2, s_y2).attr(
{
"stroke": "white"
});

}


之前在网页上画出矢量图,从数据库中读取数据,现在想从数据库读取数据读一段数据画一段图,就是画出轨迹图,在网上找了很多 js中for循环 settimeout的方法,但是还没找到有效的,哪位大神有办法 能帮忙把js中的for循环暂停几秒钟执行的,然后再进行循环,再暂停。

5个回答

qq_29594393
qq_29594393   Ds   Rxr 2016.09.14 10:52

函数回调,settimeout alert 这些都是异步的,不会起到阻塞的作用

Moses_john
Moses_john 如果我放了alert 是可以起到作用的,for循环在那里停止了
大约一年之前 回复
xubo_ob
xubo_ob   2016.09.14 11:12

很简单啊 。 用时间来判断啊。
var now = new Date().getTime();
var newTime;
while(new Date().getTime()-now >=3000){ //过了3S后
//empty
}
//go on

showbo
showbo   Ds   Rxr 2016.09.14 11:23

用setTimeout之类的来模拟for,直接for无法停止

for循环遍历如何延时执行

qq_21533697
qq_21533697   2016.09.14 13:18

楼上正解,搞个定时器模拟for

qq_21533697
qq_21533697   2016.09.14 13:19

找到一个方法
function sleep(numberMillis) {
var now = new Date();
var exitTime = now.getTime() + numberMillis;
while (true) {
now = new Date();
if (now.getTime() > exitTime)
return;
}
}

Csdn user default icon
上传中...
上传图片
插入图片