Показать сообщение отдельно
  #1 (permalink)  
Старый 06.06.2014, 19:10
Новичок на форуме
Отправить личное сообщение для Molen Посмотреть профиль Найти все сообщения от Molen
 
Регистрация: 31.08.2011
Сообщений: 7

Пауза в each или управление шагами цикла?
Добрый день, господа.
Ситуация в этот раз примерно такая:
Есть веб страница ссылками на внутренние странички.
На внутренней страничке нажимается кнопка отправляющая ajax запрос на сервер и пользователь подписывается на раздачу.
Я хочу сделать так, чтобы не надо было заходить на внутренние странички, а прямо с главной можно было возле каждой ссылки создать кнопку по клику на которую выполнялся бы тот же самый ajax запрос.
Однако, администрация сайта не глупа, и сделала проверку "А заходил ли юзер на эту страницу?".
Не беда, кнопочки на главной сделал, да и прикрепил к ним функцию создания блока, в который грузится контент странички, а после загрузки удаляется и выполняется имитация клика по заветной кнопке на внутренней. Однако за каждый клик по кнопке, перед имитацией нужно выполнить загрузку контента, это меня не утраивает.
А хочу я сделать так, чтобы при загрузке странички, сразу же выполнялась загрузка контента внутренних страниц, после загрузки каждой выполнялась имитация клика и в итоге, кроме клика на F5 юзеру ничего не надо было делать.

И тут появляется проблема, т.к. я недоделанный профан, и ничего кроме each() не знаю, то выходит у меня ровным счётом нихрена.
Когда через each() я пытаюсь собрать все ссылки на странице и прогрузить их контент, делается это всё в один момент, хоть там 3 ссылки, хоть 200, мне нужно создать, какую-то очередность или делать паузы в each цикле, пока не завершилась загрузка контента текущей ссылки и удаление элемента с этим контентом.

Сейчас говнокод выглядит примерно так:
.each(function( index ) {
     var ahref = $(this).attr("href");
     var rid = ahref.split("com/k")[1].split(".html")[0];
     $("#member").append("<div id='wID"+rid+"'>rid content number-"+rid+"</div>");
     $("#wID"+rid).load("http://site.com/k"+rid+".html", function(responseText, statusText, xhr){
               if(statusText == "success")
                    $("#wID"+rid).remove();
                    $("#btn"+rid).attr("value", "Done!");
               if(statusText == "error")
                    $("#wID"+rid).remove();
                    $("#btn"+rid).attr("value", "FailLoad!");	
     });


Т.к. чутьё мне подсказывает, что никаких пауз в цикле each() нету, прошу подсказать, какая функция подойдёт под создание нужного мне цикла, где можно будет переходить к загрузке контента следующей ссылки, только если загружен контент предыдущей.

Последний раз редактировалось Molen, 06.06.2014 в 19:18.
Ответить с цитированием