Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Оптимизировать код (https://javascript.ru/forum/events/17893-optimizirovat-kod.html)

adrian16 07.06.2011 19:45

Оптимизировать код
 
Мне нужно сделать полную паузу в скрипте. Вариантов setTimeout и set inTerval не предлагать так как дальше идет javascript код с кучей операциями которых таймаут и тайминтервал отрубит.

Я добился следующего:

<script language="javascript">

date_now = new Date();
minutes_start = date_now.getMinutes() + 1; 

do
{
date = new Date();
minutes = date.getMinutes();
}

while (minutes_start!==minutes);

alert("Выполнение скрипта задержанно на 1 мин!");



</script>



Но при выполнение этого скрипта виснет сервер из-за высокой частоты do-while.

Как можно понизить частоту выполнения do-while? Или предложите другие решения для снижения нагрузки моего скрипта.

Спасибо.

poorking 07.06.2011 19:52

Сервер не причем, такой код вынесет браузер.

Только если так


var delay = 1000;

alert("Какой-то код");

window.setTimeout(function(){


	alert("Остальной код");

}, delay);

То есть весь следующий код обернут, прямо остановить код не получится

adrian16 07.06.2011 20:20

Про ваш пример.

Если остальным кодом будут например продолжение начатых функций и продолжение логических процессов if-else, тоесть до window.setTimeout будет запущен if и еще пару под-if-ов, а скобки будут закрываться во второй части. Будет ли так работать весть код?

К сожалению нет возможности проверить/понять работоспособность вашего примера во моем скрипте т.к. скрипт большой и при неполадке может повредить контент сайта.

poorking 07.06.2011 21:22

Нет конечно. Скорее всего ваша задача требует капитального продумывания, а код рефакторинга

Slavenin 07.06.2011 22:13

если не секрет, зачем вообще устанавливать задержку выполнения скриптов? возможно если дадите больше информации, будет проще предложить решение.:)

adrian16 07.06.2011 23:19

Цитата:

Сообщение от Slavenin (Сообщение 107691)
если не секрет, зачем вообще устанавливать задержку выполнения скриптов? возможно если дадите больше информации, будет проще предложить решение.:)

Хорошо, выскакивает окно confirm, нужно чтобы после 5ти минут нажималось ок. Что можно придумать в данном случае?

Kolyaj 08.06.2011 07:57

Ничего. Нажать на ок в конфирме нельзя.

dmitriymar 08.06.2011 09:19

Да и в опере по ходу модальные окна не останавливают выполнение скрипта,по крайней мере с алерт

Маэстро 09.06.2011 16:39

Цитата:

Сообщение от adrian16 (Сообщение 107697)
Хорошо, выскакивает окно confirm, нужно чтобы после 5ти минут нажималось ок. Что можно придумать в данном случае?

Элементарно. Не используйте броузерное модальное окно. Нарисуйте свое окно с помощью DIV с абсолютным позиционированием. На момент запуска окна задизейбливайте всё остальное и запускайте таймер. После срабатывания таймера шлите событие тому, кому нужно (для этого даже не обязательно "нажимать" нарисованную кнопку).

dmitriymar 09.06.2011 16:42

Цитата:

Сообщение от Маэстро
Нарисуйте свое окно с помощью DIV с абсолютным позиционированием. На момент запуска окна задизейбливайте всё остальное и запускайте таймер. После срабатывания

очередь это не отменит,и как было сказано выше -задача требует очень глубокого продумывания индивидуально под каждую строку кода


Часовой пояс GMT +3, время: 01:03.