Как сделать что бы шаблон дожидался исполения javascript

deriklogov

Client
Регистрация
02.11.2011
Сообщения
97
Благодарностей
6
Баллы
8
Добрый,
Нужна помощь.
Шаблон заходит на страницу, там нажимаеться кнопка а идет загрузка/выполнения связанная с JS. Шаблон не дожидаеться и исполняеться дальше, как его заставить подождать выполнения ?
Спасибо большое
 

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 691
Баллы
113
надо просто определить контрольный элемент который появляется/пропадает после выполнения JS и сделать ожидание появления этого события.
 

Geograph

Client
Регистрация
16.02.2014
Сообщения
209
Благодарностей
113
Баллы
43
Действие "Браузер" -> "Настройки", "Состояние занятости" снять галочку "Игнорировать AJAX"
 

Вложения

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 691
Баллы
113

Geograph

Client
Регистрация
16.02.2014
Сообщения
209
Благодарностей
113
Баллы
43
Локальный js выполняется быстро, чаще всего долго выполняется js, который ждёт ajax-ответ от сервера
Всякие сайты со сложными формами/редакторами используют ajax для подгрузки, всегда спасала это опция от костылей с паузами, как многие любят делать
 

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 691
Баллы
113
Локальный js выполняется быстро, чаще всего долго выполняется js, который ждёт ajax-ответ от сервера
Всякие сайты со сложными формами/редакторами используют ajax для подгрузки, всегда спасала это опция от костылей с паузами, как многие любят делать
Надо не костылять паузами, а нормально делать через контрольный элемент. Это самый лучший способ, так как он гарантирует ожидание именно нужного результата. И по истечении таймаута можно либо выйти с ошибкой, либо перезагрузить страницу через счетчик.
А всякие ожидания прогрузки ajax это не более чем костыл, так как он не гарантирует, что текущая прогрузка ajax вызвана именно этим скриптом, а иногда снятая галочка ajax может привести к вечной загрузке странице. И потом от некоторых на форуме появляются темы типа помогите у меня шаблон висит на одном месте и ничего не происходит :-)
 
  • Спасибо
Реакции: Oleg1987

Norim

Client
Регистрация
17.10.2017
Сообщения
305
Благодарностей
64
Баллы
28
Добрый,
Нужна помощь.
Шаблон заходит на страницу, там нажимаеться кнопка а идет загрузка/выполнения связанная с JS. Шаблон не дожидаеться и исполняеться дальше, как его заставить подождать выполнения ?
Спасибо большое
Через Js document.readyState;
Если страница прогрузилась вернет - complete
 

deriklogov

Client
Регистрация
02.11.2011
Сообщения
97
Благодарностей
6
Баллы
8
Спасибо большое за советы.
 

deriklogov

Client
Регистрация
02.11.2011
Сообщения
97
Благодарностей
6
Баллы
8

Norim

Client
Регистрация
17.10.2017
Сообщения
305
Благодарностей
64
Баллы
28
А как это сделать ?
кубик свой код - js. Выполнить на текущей странице return document.readyState;. Запустить цикл который с интервалом в пару секунд будет проверять статус. Если статус будет complete, то страница прогрузилась.
 

deriklogov

Client
Регистрация
02.11.2011
Сообщения
97
Благодарностей
6
Баллы
8
а как получить статус ?
я создал кубик js, в него положил
return document.readyState;

создал новую переменную status, "Положить результат в переменную ....
Но переменная пустая, неочень понимаю
 

bizzon

Client
Регистрация
08.09.2015
Сообщения
1 089
Благодарностей
126
Баллы
63

Norim

Client
Регистрация
17.10.2017
Сообщения
305
Благодарностей
64
Баллы
28
а как получить статус ?
я создал кубик js, в него положил
return document.readyState;

создал новую переменную status, "Положить результат в переменную ....
Но переменная пустая, неочень понимаю
Выполнить на текущей странице
 
  • Спасибо
Реакции: bizzon

deriklogov

Client
Регистрация
02.11.2011
Сообщения
97
Благодарностей
6
Баллы
8
В общем readyState отписываеться complete но значения в таблице еще не подгрузились. Тоесть не отлавливает. Проверку элемента на странице тоже не вариант потому что какое значение подгрузиться тоже не известно
 

Phoenix78

Client
Read only
Регистрация
06.11.2018
Сообщения
11 790
Благодарностей
5 691
Баллы
113
В общем readyState отписываеться complete но значения в таблице еще не подгрузились. Тоесть не отлавливает. Проверку элемента на странице тоже не вариант потому что какое значение подгрузиться тоже не известно
раз идет какая то работа и страница меняется, то всегда можно зацепиться за какие то изменения.
Что за сайт то ?
 

deriklogov

Client
Регистрация
02.11.2011
Сообщения
97
Благодарностей
6
Баллы
8

Oleg1987

Client
Регистрация
11.08.2014
Сообщения
1 165
Благодарностей
744
Баллы
113
Через Js document.readyState;
Если страница прогрузилась вернет - complete
Это не актуально для современных веб приложений. Так же как "Игнорировать AJAX" и tab.waitloading() Phoenix78 прав. Надо дожидаться на странице появления того, что требуется. Это самый надежный способ в нынешних реалиях
 
  • Спасибо
Реакции: bizzon и Norim

Mikhail B.

Moderator
Регистрация
23.12.2014
Сообщения
14 328
Благодарностей
5 431
Баллы
113
Лучше ничего не выполнять на странице, не известно как это скажется на анонимности.
JS если подгружается и виден через монитор траффика, то можно отслеживать именно монитор траффика. Или возможно после выполнения JS есть какой-то запрос, который можно тоже отслеживать.
 

deriklogov

Client
Регистрация
02.11.2011
Сообщения
97
Благодарностей
6
Баллы
8
Спасибо всем за советы!!!! Буду искать то что подгружаеться что бы сделать проверку
 

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)