业务需要,在js脚本中,写了多个定时任务,如下代码:
setTimeout(cron, 120000);//定时上传记录信息
setTimeout(start_init, 350000);
function cron() {
$.post('cron.php', {state: 'cron'}, function(data) { });
setTimeout(cron, 120000);
}
function start_init() {
$.post('start_init.php', {state: 'start_init'}, function(data) { });
setTimeout(start_init, 350000);
}
/**
* 这段是逻辑处理
**/
var clear_t;
document.onkeydown = function(e){
var ev = document.all ? window.event : e;
if(ev.keyCode==13) {
clearTimeout(clear_t);
$.post('ajax.php', send_data, function(data) {
var jsonRes = JSON.parse(data);
if(jsonRes.status == 202) {
/**业务代码块**/
}else if(jsonRes.status == 200 || jsonRes.status == 2000) {
/**业务代码块**/
}else {
/**业务代码块**/
}
clear_t = setTimeout(clear_content, 5000);
}
}
}
/**
* 更改页面部分信息的方法
*/
function clear_content() {
$("#username").text('******');
$("#useroperations").text('******');
$("#last_balance").text(0);
$("#consum").text(0);
$("#now_balance").text(0);
local_soc.emit('cum_num', 0);
}
如上述代码所示(代码最上面的两个定时器没有什么特别意义,贴出来是为了说明这个脚本中定时器很多
),js
脚本中用到了很多的定时器,那么这些定时器,异步向服务器发送请求的就不说了,就是更改页面部分信息clear_content
方法这里,有时候容易断片儿,时不时的不会执行这段代码,请问像这样的是由于多个定时器冲突造成的吗?那么应该如何避免这样的问题?或者如何改进这段程序块?
对了,特别说明一下,捕获鼠标回车事件,也就是最下面的代码块执行的很频繁,差不多3~5s
就会执行一次。
https://zhuanlan.zhihu.com/p/...