Может ли тег body содержать кратно onload = "setInterval ()"? - PullRequest
0 голосов
/ 12 июля 2011

Может ли тег body содержать два заданных интервала?или 2 функции используют одинаковый интервал?

например:

<body onload="setInterval(function1, 500); setInterval(function2, 1000);">

<body onload="setInterval(function1, function2, 500");>

Ответы [ 4 ]

6 голосов
/ 12 июля 2011

Вы можете создать функцию, которая дважды вызывает setInterval () с разными функциями и вызывать ее для body.onload ().

И я не думаю, что 2 функции могут иметь одинаковый интервал, если вы не переносите ихих в одном или называть их встроенными, как это:

<body onload="setInterval(function(){ function1(); function2();}, 500);">
2 голосов
/ 12 июля 2011

Ваш первый пример будет в порядке:

window.onload = function() {
   setInterval(function1, 500); 
   setInterval(function2, 1000); 
}

function function1() {
   console.log("function1");   
}

function function2() {
   console.log("function2");   
}

Смотрите пример работающего кода выше здесь .

0 голосов
/ 11 апреля 2014

Создайте столько нагрузок, сколько вам нужно, без коллизий.

<SCRIPT>

    // Class Definition
    OnLoad = function(taskFunction,miliseconds) { 
        var context = this;
        context.cnt = 0;
        context.id = null;
        context.doTask=taskFunction;
        context.interval = function() {
            if(document.readyState == "complete"){
               try{   context.stop();} catch(e){ throw new Error("stop error: " + context.id); }
               try{ context.doTask();} catch(e){ throw new Error("load error: " + context.id); }
            }   
        };
        context.start = function(timing) {
            if(context.id && context.id!=null)
                context.stop();
            context.cnt=0;
            context.id=setInterval(context.interval,timing);
        };
        context.stop = function() {
            var _id = context.id;
            clearInterval(context.id);
            context.id=null;
        };
        context.start(miliseconds ? miliseconds : 100);
    };


    // Example Onloads
    new OnLoad(function(){
        alert("onload 1");
    }); // uses default timing of 100 miliseconds

    new OnLoad(function(){
        alert("onload 2");
    },200);

    new OnLoad(function(){
        alert("onload 3");
    },300);

</SCRIPT>
0 голосов
/ 12 июля 2011

Просто используйте jQuery и зарегистрируйте обработчик событий (в блоке <script type="text/javascript">).

В случае, если все, что вам нужно, это доступное дерево DOM:

$(document).ready(function() {
    setInterval(function1, 500);
    setInterval(function2, 1000);
});

в противном случае (если вам нужно загрузить все изображения и т. Д.):

$(window).load(function() {
    setInterval(function1, 500);
    setInterval(function2, 1000);
});
...