- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Переиграть и победить: как анализировать конкурентов для продвижения сайта
С помощью Ahrefs
Александр Шестаков
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Как известно, у JS есть такое свойство из коробки, отсюда код ниже безбожно вешает систему, если в массиве 700-800 записей, сама функция function_for_15_second - содержит в себе AJAX запрос и выполняется достаточно долго. При таком виде у меня большим списком вылетает сначала список всех запросов к серверу, а после я сижу и жду окончания каждого. То есть если в массиве 10000 записей, то именно столько запросов обрушивается на сервер. Хочется сделать так, чтобы каждый раз при новом вызове функции не было перехода к следующему элементу массива и скрипт обязательно ждал полного ее выполнения... Как это сделать?
Вам нужно следующий ajax запрос делать после окончания предыдущего?
Как-то так
Kot Matroskin,
Да, по сути это, а он внутри функции function_for_15_second(entry);
То есть это значит:
$(document).ajaxComplete(
function_for_15_second(entry);
)};
То есть это значит:
$(document).ajaxComplete(
function_for_15_second(entry);
)};
А можно ещё так
Без forEach.
Делайте запрос на первый элемент.
function_for_15_second(ary[0]);
Внутри аjax при завершение (success:function) вызывайте рекурсивно снова функцию но уже на элемент +1 (проверьте что есть такой)
Весь массив можно или GLOBAL или то-же передавать function_for_15_second(ary[0],ary);
На ajaxComplete глупая затея, т.к. и метрика, и аналитика постоянно шлют запросы.
Нужно рекурсивно вызовы делать.
Kot Matroskin, Хитрый запрос, с ajaxComplete .... Правда у меня не AJAX запрос в прямом смысле, он обернут в функцию, которая ничего такого не возвращает в прямом смысле. Если бы как-то именно с функцией это провернуть... То есть ожидать return от нее в обязательном порядке, например? Иначе как я в своей конструкции получаю еще параметры AJAX запроса не очень понял....
myajax(){
'success' :if (condition) mayajax()
}
Kot Matroskin, Хитрый запрос, с ajaxComplete .... Правда у меня не AJAX запрос в прямом смысле, он обернут в функцию, которая ничего такого не возвращает в прямом смысле. Если бы как-то именно с функцией это провернуть... То есть ожидать return от нее в обязательном порядке, например? Иначе как я в своей конструкции получаю еще параметры AJAX запроса не очень понял....
Ну код то мы не видим. Логика верная, нужен возврат от функции после завершения работы, если возврат есть пускаем её снова и т.д.
Или внутри самой функции вызываем рекурсивно функцию после завершения задачи.
Kot Matroskin, Chukcha, Спасибо, после много написанного я сейчас попробую упаковать себе в голову иную логику... Да я не стал все копировать, но по сути у меня все уперлось в этот вызов в массиве, что мне до этого казалось очень удобным и простым...
---------- Добавлено 03.08.2017 в 22:41 ----------
myajax(){
'success' :if (condition) mayajax()
}
Единственное, что удалось привести в рабочий вид, именно так и никак иначе он не захотел ждать пока выполнится функция... Странно все таки, неужели это так сложно, просто подождать результата кроме как undefined...
Слушайте, это кошмар, теперь жду по 20 минут :) Вот блин, мой VPS оказывается справлялся как мог на 5+, не зря я его ложил, так как у него уходило всего по 2-4 минуты, но когда запросов валиться стало одновременно уже 700+ он стал лежать после выполнения 500+. Ну и мера прямо была, чтобы последовательно его а не за раз напрягать таким...
Segey, я удивляюсь, хз как Вас народ понимает... Лично я почти ничего не понял, довольно бессвязно излагаете. И зачем Вы сидите и чего-то ждёте? Не проще ли прийти через пару часов и посмотреть готовый результат? И да, чтобы сервер не ложился, давайте ему отдыхать время от времени. Есть же setTimeout и setInterval, например.