Цикл завешивает страницу, помогите
Привет всем! Сорри за вопрос чайника!
Итак, задача - по клику на кнопке начать цикл, он длительный. Залипающую кнопку не нашел, поэтому решил использовать чекбокс. В цикле проверяю состояние чекбокса и если его сняли, останавливаю цикл. Но это не сработало, т.к. цикл вешает страницу и не дает ничего изменить, в том числе кликнуть на чекбокс. Как быть? Пытаюсь делать вот так: <div><input type="button" value="Начать закачку объектов в базу" class="startbutton"><br> <input type="checkbox" class="startcheckbox">Снять флажок для остановки процесса</div> и далее уже в JS пишу $('.startbutton').click(function(){ $(".startbutton").hide("fast"); $('.startcheckbox').attr('checked','checked'); $.each(pic, function(ind, val) { пошел цикл }); </code> Но всё зависает как только нажал startbutton даже кнопка не исчезает, а только после цикла уже пропадает, когда мне это совсем не нужно. А вот чекбокс кстати устанавливается в Checked. но... снять его я не могу. Как сделать легкий цикл? Чтобы в процессе можно было вводить что нть на странице. или какой-нибудь более простой способ вручную НАЧАТЬ цикл и потом иметь возможность его ВРУЧНУЮ ПРЕРВАТЬ. как? |
Два решения:
1) Не использовать цикл. Использовать таймер через setInterval 2) Использовать WebWorker |
Цитата:
Что касается первого пункта, как же я обойдусь без цикла? Если у меня на этой же странице чуть выше ПХП-шка генерирует массив, и он всегда разный. 1, 2, 55 элементов, или 2000... Объясню с самого начала. Их Пхп в Jquery передаю переменные так: <input type=hidden id='num' value='массив ссылок через запятую'>"; дальше их принимаю и разбираю в массив уже в Яваскрипте pic = $('#num').val().split(","); И по каждому элементу массивав мне нужно выполнить определенные действия. Я умею только так: $.each(pic, function(ind, val) { действия } Может, как-то еще можно принять массив изх ПХП и выполнить действия над элементами массива (например, открыть все ссылки, или показать все картинки, не суть... )? В принципе, всё работает, у меня там через Аякс открывается пхп файл и выдает результат. И так до 50 раз. Всё ок. Но в процессе работы страница виснет в плане ввода, то есть я не могу остановить процесс. Че-то там выводит мне в дивы, пашет, но не отвечает на внешние раздражители ))) |
Цитата:
|
Цитата:
Предпочитаю в таких случаях использовать setTimeout в конце функции с вызовом этой же функции. danik.js, я заблуждаюсь? |
Цитата:
|
Часовой пояс GMT +3, время: 23:50. |