Javascript 当我每N秒迭代一次将src附加到图像时,出现了一些错误
当我使用javascript代码执行此操作时,出现了一些问题Javascript 当我每N秒迭代一次将src附加到图像时,出现了一些错误,javascript,jquery,Javascript,Jquery,当我使用javascript代码执行此操作时,出现了一些问题 function sleep(delay) { var start = new Date().getTime(); while (new Date().getTime() < start + delay); } //submit data with jQuery AJAX function onSuccess(data) { var millisecond
function sleep(delay) {
var start = new Date().getTime();
while (new Date().getTime() < start + delay);
}
//submit data with jQuery AJAX
function onSuccess(data) {
var millisecondsToWait = $("#range").val() * 1000;
obj= JSON.parse(data)
for (var x of obj.Images_Url)
{
$("#left_image").attr('src', x.Item1);
$("#right_image").attr('src', x.Item2);
sleep(millisecondsToWait);
}
只显示带有url5
和url6
我不知道为什么会这样
但我假设浏览器或渲染挂起,因为我没有使用任何线程或任务,所以请任何人知道如何修复此问题,执行队列清空时,即代码运行到完成时,会发生渲染。因此,您将只看到最后两幅图像 你可以这样做:
让numbersToShow=[1,2,3,4,5,6,7],
left=document.getElementById('left'),
right=document.getElementById('right');
按Pairatinterval(numbersToShow,2000)显示数字;
函数showNumbersByPairAtInterval(数字显示、间隔、索引){
指数=指数| | 0;
设slice=numbersToShow.slice(索引,索引+2),
nextIndex=指数+2;
left.textContent=切片[0];
right.textContent=slice[1];
如果(nextIndex如果您只是尝试以定时的速度迭代图像url的数组,您可以这样做,间隔1秒:
var obj = JSON.parse(data);
var k = 0;
var total = obj.Images_Url.length;
setInterval(function () {
if (k < total) {
$("#left_image").attr('src', obj.Images_Url[k].Item1);
$("#right_image").attr('src', obj.Images_Url[k].Item2);
k++;
}
}, 1000);
var obj=JSON.parse(数据);
var k=0;
var total=obj.Images\u Url.length;
setInterval(函数(){
如果(k<总数){
$(“#left_image”).attr('src',obj.Images_Url[k].Item1);
$(“#right_image”).attr('src',obj.Images_Url[k].Item2);
k++;
}
}, 1000);
你确定代码/json字符串是正确的吗?item1
!=item1
Omg…不要做类似于sleep
的事情。你只有一个线程,你当然不想阻止它。使用异步计时器,如setInterval
或setTimeout
。当我在后台编码时,我只是使用Task。延迟和async并等待做这样的事情,但我对javascript不是很在行,抱歉,稍加修改,它就像一个魔咒,我很高兴我能帮上忙!
var obj = JSON.parse(data);
var k = 0;
var total = obj.Images_Url.length;
setInterval(function () {
if (k < total) {
$("#left_image").attr('src', obj.Images_Url[k].Item1);
$("#right_image").attr('src', obj.Images_Url[k].Item2);
k++;
}
}, 1000);