Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Выполнить скрипт после заверщения другого скрипта
Форумы портала PHP.SU » » Вопросы новичков » Выполнить скрипт после заверщения другого скрипта

Страниц (1): [1]
 

1. Serhio - 07 Мая, 2015 - 16:24:39 - перейти к сообщению
Всем привет!

Первый скрипт выполняет передачу данных ассинхронно.
При клике на кнопку начинает выполняться второй скрипт, который считывает результат выполнения первого скрипта, но первый скрипт не закончил свое выполнение на 100%. В результате второй скрипт считал не полную информацию

Есть для такой ситуации что-нибудь аля $(document).ready()?
2. Sail - 07 Мая, 2015 - 16:26:36 - перейти к сообщению
Serhio, инициализация выполнения первого скрипта и кнопка для второго - на одной "страничке" находятся?
Ну и никто не мешает где-нить хранить статус актуальности данных.
3. Serhio - 07 Мая, 2015 - 16:30:21 - перейти к сообщению
Sail пишет:
Serhio, инициализация выполнения первого скрипта и кнопка для второго - на одной "страничке" находятся?
Ну и никто не мешает где-нить хранить статус актуальности данных.


На одной! Статус актуальных данных хранить можно в БД, никто не мешает, только это не к этой задаче комментарий, если я вас правильно понял.
4. Sail - 07 Мая, 2015 - 16:35:36 - перейти к сообщению
Serhio пишет:
На одной!

Во-первых, можно сделать недоступной для нажатия кнопку вызова второго скрипта, пока не получите подтверждения выполнения первого.
Во-вторых, всё равно при выполнении второго скрипта надо проверять статус актуальности данных, подготовленных первым скриптом.
Ну и если тот пишет в БД, можно, например, в рамках одной транзакции выполнять все требуемые обновления и тогда второй скрипт будет читать хоть и устаревшие, но все данные, которые были актуальны на момент до запуска первого скрипта).
(Добавление)
PS: и ещё есть Объект deferred
5. Serhio - 07 Мая, 2015 - 16:48:28 - перейти к сообщению
Sail пишет:
Serhio пишет:
На одной!

Во-первых, можно сделать недоступной для нажатия кнопку вызова второго скрипта, пока не получите подтверждения выполнения первого.
Во-вторых, всё равно при выполнении второго скрипта надо проверять статус актуальности данных, подготовленных первым скриптом.
Ну и если тот пишет в БД, можно, например, в рамках одной транзакции выполнять все требуемые обновления и тогда второй скрипт будет читать хоть и устаревшие, но все данные, которые были актуальны на момент до запуска первого скрипта).
(Добавление)
PS: и ещё есть Объект deferred


Ага, спасибо большое!
Видимо я совсем не знаком с проверкой статуса актульности данных. Как это делается?
Кстати первый пункт тоже интересен пример каким методом вы это сможете сделать?
6. DeadCowsDontMoo - 15 Мая, 2015 - 17:48:50 - перейти к сообщению
Sail пишет:
можно сделать недоступной для нажатия кнопку вызова второго скрипта, пока не получите подтверждения выполнения первого.


Напиши как Хорошо или ссылочку... Закатив глазки
7. Sail - 15 Мая, 2015 - 20:00:28 - перейти к сообщению
DeadCowsDontMoo пишет:
Sail пишет:
можно сделать недоступной для нажатия кнопку вызова второго скрипта, пока не получите подтверждения выполнения первого.


Напиши как Хорошо или ссылочку... Закатив глазки

Самое простое: jquery атрибут disabled
8. MAXUS - 16 Мая, 2015 - 08:43:08 - перейти к сообщению
Serhio пишет:
Всем привет!

Первый скрипт выполняет передачу данных ассинхронно.
При клике на кнопку начинает выполняться второй скрипт, который считывает результат выполнения первого скрипта, но первый скрипт не закончил свое выполнение на 100%. В результате второй скрипт считал не полную информацию

Есть для такой ситуации что-нибудь аля $(document).ready()?


1. А насколько, в принципе, оправдано наличие кнопки, которая запускает второй скрипт?
1.1 Можно ведь инициировать запуск второго скрипта после того, как выполнится первый. Даже при асинхронном запросе.
1.2 Ну, или по завершению первого скрипта создавать объект с полученными данными, а по нажатию на кнопку второго скрипта проверять наличие этого объекта и запускать второй скрипт только если этот объект существует.

2. А кнопку при генерации рисуй сразу с атрибутом disabled, а по выполнению первого скрипта удаляй этот атрибут. Только в этом случае см. п.1Улыбка

 

Powered by ExBB FM 1.0 RC1