/ / Безвідповідальна перевірка Javascript безлічі елементів [дублікат] - javascript

Не реагувати Javascript, перевіряючи багато елементів [дублікат] - javascript

Я створив жорстокий сценарій на зразок сценарію, який в основному повинен перевірити більше 27 000 варіантів, і після кожної перевірки відображається результат всередині діва.

Сценарій кодується правильно, і якщо я знижукількість варіантів працює досить добре, але якщо у мене є багато варіантів, через декілька секунд з'явиться вікно, яке скаже мені, що мій сценарій не відповідає. Як я можу зробити його чуйним під час перевірки цього безлічі варіантів.

О, і я майже забув, він відображає дані (які відображаються після кожної перевірки) лише тоді, коли з'являється це спливаюче вікно (якось дивно).

Відповіді:

1 для відповіді № 1

Асинхронна пакетна обробка може вирішити вашу проблему:

var options = ...; // your code

// I assume you are using something like this
function processAll() {
for(var i=0; i<options.length; ++i) ... // causes unresponsivity
}

// try to use this instead
function batchProcessing(from) {
if(from >= options.length) return;
var to = Math.min(1000, options.length-from);
for(var i=from; i<from+to; ++i) ... // your code
// run the next batch asynchronously, let the browser catch the breath
setTimeout(batchProcessing.bind(null, from+1000));
}