![]() |
как определить что PHP скрипт отработал
Здравствуйте.
У меня такой вопрос. Есть эти файлы Код:
init1.txt, init2.txt.. initN.txtИ есть резервные файлы Код:
reservedInit1.txt, reservedInit2.txt.. reservedInitN.txtИ есть кнопка revert, которая заменяет 'эти' файлы 'резервными' и перезапускает флешку. это достигается с помощью следущего скрипта PHP код:
Вопрос: как мне определить, что резервные файлы уже скопировались, а только потом перезапускать? То есть может быть, я могу следить, завершились ли операции с файлами на сервере? и даже если бы я мог, как я сообщу об этом обратно в swf? Единственное что приходит мне в голову - просто подождать несколько секунд, но должно быть более правильное решение. |
Эти методы же синхронные. Сначала делайте ваши copy потом запускайте флешку. А проблема скорее всего в кешировании в браузере. Поищите по форуму, не раз уже обсуждалось.
|
синхронные, и что это нам дает. вот я допустим сделаю
Код AS3:
|
в PHP нужно добавить в конце echo, а во флэшке поставить слушатель на окончание загрузки скрипта. И будет счастье )
|
Цитата:
Отдайте из скрипта флэшке ответ что мол "я отработала" ! echo 'otvet=im_done' Для AS2 будет это так Код AS1/AS2:
|
Приветствую!
2 tkaChuck: Судя по коду и ТЗ - данные однозначно кешируются, также, верно подметил, restart выполнится ранее, сейчас редактора под рукой нет, но надеюсь, что код будет работать: ребят, где ошибся синтаксически - просьба не кричать, ибо сейчас Дельфист Код AS3:
|
Цитата:
PHP код:
|
чтобы избежать проблем с кодировкой, в ответах(otvet=скопировано) лучше использовать латынь(request=sucess), или же прописать поддержку кириллицы во Flash=)
немного накалябал пхп, объединив идею djyamato и задачу tkaChuck) PHP код:
|
отлично. большое спасибо, товарищи!
таким образом, ответ на мой вопрос и правда лежит в PHP код:
типа чтото вроде Код AS3:
но откуда возьмется в swfe событие по поводу того что там генерит пхп Добавлено через 16 часов 14 минут Цитата:
|
Вложений: 1
Доброго времени суток, сейчас попробую набросать код и приложить в аттач.
Сорри за отсутствие) Цитата:
наконец-то добрался до редактора - высылаю код и исходники в аттачменте и код: Код AS1/AS2:
PHP код:
|
огромное спасибо
Добавлено через 4 минуты для тех, кто попадет сюда в поисках, ответ на мой вопрос: когда php-скрипт заканчивает работы, он диспатчит COMPLETE. echo в php-скрипте отправляет данные в data URLLoader-a, которым мы обращались к скрипту |
Ткачук, с ответом от сервера все ровненько! Только опять же - возможно кеширование (точнее скорее всего оно будет), так что пускай сервер отвечает тебе:
echo answer=какоетослово&anticache=случайное_число; далее в function PostLoad не спеши грохать loader.removeEventListener(Event.COMPLETE , PostLoad);. Поставь Timer , в таймере проверяй наполнение loader.data, если в loader.data что то появилось, тогда - это что то и будет ответом от сервера (если конечно так сильно нужно дождаться ответа от сервера). Как только получил ответ - запускай loader.removeEventListener(Event.COMPLETE , PostLoad); Ответ от сервера разобрать сможешь через: var variables:URLVariables = new URLVariables(loader.data); trace(variables.answer) // то что у тебя в PHP является "какоетослово"; И в Php кажется отводится какое свое максимальное время "жизни" работы скрипта. Ну вообщем, если суть в том, что сервер который тебе отвечает - медленный, то внутри таймера ты вроде точно сможешь дождаться ответа. |
ERrorMAKros, знаю, тема уже не актуальна, но все же отвечу:
функция PostLoad исполнит свои обязанности только тогда, когда мы дождемся ответа от сервера, другими словами, когда сервер уже вернет ответ. Пока пхпшка выполняет сценарии - от нее ни слуху ни духу, так что нет необходимости ставить таймер. А насчет кеширования, запрос к файлу будет уникальным, т.к. мы приписывали к файлу параметр nocache с рандомным значением. |
Спасибо! Тема снова обрела актуальность)
|
| Часовой пояс GMT +4, время: 07:53. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.