gpt4 book ai didi

javascript - 从循环外中断循环

转载 作者:行者123 更新时间:2023-11-28 14:03:44 26 4
gpt4 key购买 nike

我有一个带有默认值的搜索表单。当用户加载页面时,我调用一个函数 onload。

该函数有一个循环,每次迭代都会调用 Ajax 请求。

我大约需要 20 到 30 秒才能执行所有 Ajax 请求。

在这些迭代期间,用户可以更改表单值并可以提交表单在这些迭代完成之前。

有没有办法在用户单击提交按钮时打破该循环?

谢谢。

最佳答案

如果表单被回发,页面将卸载。任何待处理的请求都将被删除(尽管服务器将继续处理它已经看到的任何请求,但无能为力)。如果帖子也是通过 AJAX 发生的,那么您可以使用一个保护变量,只需在提交之前设置它,并在发送更新请求之前检查它。

我假设您希望在提交表单之前进行定期更新 - 循环并不是真正处理该问题的理想方法。下面的示例使用 setTimeout 每秒轮询服务器 - 只要表单尚未提交。

var submitted = false;
var timer = null;
$('.submit-button').click( function() {
submitted = true;
if (timer) clearTimeout( timer );
$('form').submit();
return false;
});

function doUpdate()
{
if (!submitted) {
$.ajax({
...
});
timer = setTimeout(doUpdate,1000);
}
}

doUpdate();

关于javascript - 从循环外中断循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3449378/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com