gpt4 book ai didi

javascript - JQuery新手: Do I Need a setTimeout for long running function

转载 作者:行者123 更新时间:2023-12-02 15:16:18 24 4
gpt4 key购买 nike

我正在开发一个网络应用程序,该应用程序可以选择收集许多数据点。此操作可能需要长达 10-15 分钟的时间。

我编写了一些 JQuery,用于在回调链中加载 div。但是,如果该功能需要很长时间才能完成,则无论如何,回调都会加载。

我怀疑另一个错误可能是罪魁祸首,并添加了更多错误日志记录和检查。

我仍然想知道此行为是否可以归因于超时问题?

干杯

编辑:修复了语法问题假设我的语法是正确的,上述函数的长时间运行是否仍然可能会导致问题?

或者这更有可能是一个错误或未处理的错误?

<script type="text/javascript">
setTimeout("alert('timeout');", 800000)

$(function() {
$("#chart").load("/run_analysis/", function() {
$("#stem").slideDown("fast");
});
});
</script>

<body>
<div id="chart">Collecting Data</div>

<div id=stem style="display: none">
<a href="/stem/">Single Word Analysis</a>
</div>
</body>

最佳答案

如果.load成功完成,您可以清除超时函数。那是你要的吗?

var timer = setTimeout(function(){ alert("timeout"); }, 800000);
$("#chart").load("/run_analysis/", function() {
$("#stem").slideDown("fast");
clearTimeout(timer);
});

或者,您可以使用 .load 回调的 status 参数

$("#chart").load("/run_analysis/", function(response,status,xhr) {
if (status == "timeout")
alert("Timed out...");
if (status == "success")
$("#stem").slideDown("fast");
});

如果您想以毫秒为单位指定超时,您可能应该使用.ajax语法。我不确定您是否可以直接使用 .load 来做到这一点。看看这个answer

关于javascript - JQuery新手: Do I Need a setTimeout for long running function,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34458032/

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