如果IE fork执行定时函数

If IE fork execution of timed function

本文关键字:定时 函数 执行 fork IE 如果      更新时间:2023-09-26

我有一个类似

的代码
$(document).ready(function(){
    $(function () {
        window.setTimeout(function () {
            if( getInternetExplorerVersion() != -1){
                //do not friendly IE stuff
                            ie_browsers();          
            }else{
                other_browsers();
            }
                        setInterval(other_browsers, 32000);
        }, 800);
    });
   ...

来检测IE,我有

function getInternetExplorerVersion(){
        var rv = -1;
        if (navigator.appName == 'Microsoft Internet Explorer'){
            var ua = navigator.userAgent;
            var re  = new RegExp("MSIE ([0-9]{1,}['.0-9]{0,})");
            if (re.exec(ua) != null)
                 rv = parseFloat( RegExp.$1 );
        }
           return rv;
    }

我的问题是我必须把指令setInterval(other_browsers, 32000);放在哪里?

我必须把它放在else语句和其他ie_browsers();里面吗?

目的是每32秒执行一次函数,延迟800毫秒。

一般来说这是有问题的(我将把它留给评论)。如果我理解你的问题,你可以做以下事情来避免在ifelse中重复你的setInterval:

$(function () {
    window.setTimeout(function () {
        var func;
        if( getInternetExplorerVersion() != -1){
            //do not friendly IE stuff
            func = ie_browsers;
        }else{
            func = other_browsers;
        }
        // call once now
        func();
        // call repeatedly on an interval
        setInterval(func, 32000);
    }, 800);
});