gpt4 book ai didi

jquery - 如何在 Javascript 中检查变量是否超时?

转载 作者:行者123 更新时间:2023-12-01 03:20:03 25 4
gpt4 key购买 nike

我决定将此代码包含到一个对象中,以将其与其将应用的区域分开。非常感谢这里的任何建议:

appConfig.loadElement 和 appConfig.cerrorElement 是这些 HTML 元素:

<div id="loading" style="display:none;">Loading...</div>
<div id="cerror" style="display:none;">Connection Error.</div>


var loadingTimeoutInstance = null, cerrorTimeoutInstance = null,
requestObj = {
reset: function() {
$(appConfig.loadElement).hide();
$(appConfig.cerrorElement).hide();
clearTimeout(loadingTimeoutInstance);
clearTimeout(cerrorTimeoutInstance);
},
initiate: function() {
loadingTimeoutInstance = setTimeout(requestObj.timeout, appConfig.loadingDelayMS);
},
timeout: function () {
clearTimeout(loadingTimeoutInstance);
$(appConfig.loadElement).show();
cerrorTimeoutInstance = setTimeout(requestObj.cerror, appConfig.cerrorDelayMS);
},
cerror: function () {
clearTimeout(cerrorTimeoutInstance);
$(appConfig.loadElement).hide();
$(appConfig.cerrorElement).show();
}
}

实现如下:

当发出异步请求时:

requestObj.reset();
requestObj.initiate();

响应返回后:

requestObj.reset();

我发现的问题主要在requestObj.reset()中:- 如果元素已经隐藏,为什么还要隐藏它们?- 如果尚未将超时变量(loadingTimeoutInstance 和 cerrorTimeoutInstance)设置为超时,则无法清除它们 - 这会导致其无法工作。

最佳答案

您实际上不需要检查它是否属于某种类型......只需检查它就是。

if(cerrorTimeoutInstance)clearTimeout(cerrorTimeoutInstance);

关于jquery - 如何在 Javascript 中检查变量是否超时?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10923655/

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