【发布时间】:2020-10-06 21:32:23
【问题描述】:
在下面的代码中,我使用setTimeout() 对我的后端 node.js 应用程序进行 API 调用,它每 5 秒调用一次 AJAX。在我的 AJAX 成功中,我根据应至少执行一次的特定条件显示 divContent1 和 divContent2。之后,在每个 setTimeout() 调用中应该只有 divContent2 可见。
index.html
<script type="text/javascript">
$(document).ready(function(){
$.ajax({
url: "http://localhost:8070/api/route1",
type: 'POST',
dataType:'json',
success: function(res) {
//Some Task
}
});
$("#myButton").click(function(){
const route2 = function() {
$.ajax({
url: "http://localhost:8070/api/route2",
type: "POST",
dataType: "json",
data: { var1: val1 },
success: function (res) {
// Various tasks
if(res.flag){
$("#divContent1").hide();
$("#divContent2").show();
}
else{
$("#divContent1").show();
}
//Functions that handle div content data
},
beforeSend: function() {
$("#divContent1").hide();
$("#divContent2").hide();
},
complete: function() {
setTimeout(route2,5000);
},
});
};
$(function(){
route2();
})
});
});
</script>
setTimeout() 调用整个route2 函数,该函数处理div 内容的所有显示和插入。但是,要求仅显示第二次通话中的divContent2。
为此寻找解决方案
【问题讨论】:
标签: javascript jquery ajax settimeout setinterval