сколько вызов javascript setTimeout/setInterval может быть установлен одновременно на одной странице?

Другим вариантом является пакет janitor:

df <- remove_empty_cols(df)

https://github.com/sfirke/janitor

26
задан rabbit 31 March 2010 в 13:10
поделиться

3 ответа

Вы можете использовать столько, сколько хотите. Просто помните, что JavaScript является однопоточным, поэтому ни один из них не может выполняться параллельно.

11
ответ дан kemiller2002 28 November 2019 в 06:44
поделиться

На странице вы можете запускать столько setTimeouts / setIntervals одновременно, сколько пожелаете, однако для управления каждым из них вам необходимо назначить их переменной.

var interval_1 = setInterval("callFunc1();",2000);
var interval_2 = setInterval("callFunc2();",1000);
clearInterval(interval_1);

Тот же код выше применяется к setTimeout, просто заменяя формулировку.

Как сказал Кевин, JavaScript действительно является однопоточным, поэтому, хотя у вас может быть несколько тиковых таймеров одновременно, только один может срабатывать одновременно - то есть, если у вас есть один, который запускает функцию, которая «останавливает» выполнение, например, с окном оповещения, тогда JS должен быть «возобновлен», прежде чем другой может вызвать срабатывание, я считаю.

Еще один пример приведен ниже. Хотя разметка недействительна, она показывает, как работают таймауты.

<html>
    <body>
        <script type="text/javascript">
            function addThing(){
                var newEle = document.createElement("div");
                newEle.innerHTML = "Timer1 Tick";
                document.body.appendChild(newEle);
            }   
            var t1= setInterval("addThing();",1000);
            var t2 = setInterval("alert('moo');",2000);
        </script>
    </body>
</html>
22
ответ дан Benjamin 28 November 2019 в 06:44
поделиться

var interval_1 = setInterval ("callFunc1 ();", 2000); вызывает eval () , что является злом, поэтому это ПЛОХО. Используйте это вместо var interval_1 = setInterval (callFunc1,2000);

И для вопроса, вы можете использовать столько, сколько хотите, но если у всех одинаковый интервал между двумя действиями , лучше сделайте это так

var interval = setInterval(function() {
  // function1
  fct1(); 
  // function2
  fct2();
 },2000);
6
ответ дан 28 November 2019 в 06:44
поделиться
Другие вопросы по тегам:

Похожие вопросы: