作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在开发一个网络应用程序,该应用程序可以选择收集许多数据点。此操作可能需要长达 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/
我是一名优秀的程序员,十分优秀!