javascript - Es gibt zu viele Timer im JS-Skript. Wie kann man Konflikte lösen?
迷茫
迷茫 2017-06-06 09:53:37
0
1
1053

Geschäftsanforderungen, mehrere geplante Aufgaben werden wie folgt in das JS-Skript geschrieben:

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);
}

Wie im obigen Code gezeigt (代码最上面的两个定时器没有什么特别意义,贴出来是为了说明这个脚本中定时器很多),js脚本中用到了很多的定时器,那么这些定时器,异步向服务器发送请求的就不说了,就是更改页面部分信息clear_contentHier in der Methode ist es manchmal leicht, zu fragmentieren, und dieser Code wird von Zeit zu Zeit nicht ausgeführt. Wird dies durch den Konflikt mehrerer Timer verursacht? Wie kann man ein solches Problem vermeiden? ? Oder wie kann man diesen Block verbessern?

Ein besonderer Hinweis besteht übrigens darin, das Mauseingabeereignis zu erfassen, das heißt, der untere Codeblock wird sehr häufig ausgeführt, fast

wird einmal ausgeführt. 3~5s

迷茫
迷茫

业精于勤,荒于嬉;行成于思,毁于随。

Antworte allen(1)
仅有的幸福

https://zhuanlan.zhihu.com/p/...

Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage