|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
Регистрация: Nov 2005
Сообщений: 48
|
как определить что PHP скрипт отработал
Здравствуйте.
У меня такой вопрос. Есть эти файлы и swf в ходе работы постоянно их обновляет. И есть резервные файлы которыые представляют собой резервные копии И есть кнопка revert, которая заменяет 'эти' файлы 'резервными' и перезапускает флешку. это достигается с помощью следущего скрипта
Вопрос: как мне определить, что резервные файлы уже скопировались, а только потом перезапускать? То есть может быть, я могу следить, завершились ли операции с файлами на сервере? и даже если бы я мог, как я сообщу об этом обратно в swf? Единственное что приходит мне в голову - просто подождать несколько секунд, но должно быть более правильное решение. |
|
|||||
Эти методы же синхронные. Сначала делайте ваши copy потом запускайте флешку. А проблема скорее всего в кешировании в браузере. Поищите по форуму, не раз уже обсуждалось.
__________________
2+2=5 |
|
|||||
Регистрация: Nov 2005
Сообщений: 48
|
синхронные, и что это нам дает. вот я допустим сделаю
понятно, что рестарт произойдет раньше чем отработает revert.php. а надо чтобы произошел ПОЗЖЕ. а при каких делах тут кеширование? |
|
|||||
Регистрация: Apr 2010
Адрес: Earth
Сообщений: 1,897
|
в PHP нужно добавить в конце echo, а во флэшке поставить слушатель на окончание загрузки скрипта. И будет счастье )
|
|
|||||
Цитата:
Отдайте из скрипта флэшке ответ что мол "я отработала" ! echo 'otvet=im_done' Для AS2 будет это так |
|
|||||
Регистрация: Apr 2010
Адрес: Kemerovo
Сообщений: 11
|
Приветствую!
2 tkaChuck: Судя по коду и ТЗ - данные однозначно кешируются, также, верно подметил, restart выполнится ранее, сейчас редактора под рукой нет, но надеюсь, что код будет работать: ребят, где ошибся синтаксически - просьба не кричать, ибо сейчас Дельфист //За основу взял твой примерочный код и немного его дополнил var RandNum: String //уникальная стринга var loader : URLLoader = new URLLoader(); loader.addEventListener( Event.LOAD, PostLoad) //Сейчас не вспомню, точно ли EVENT.LOAD //но вешаем слушателя на событие "когда загрузится" RandNum = Math.random ( 10000 );// создаем уникальную строку RandNum += '_' + Math.random ( 10000 ); loader.load( new URLRequest( "revert.php?nocache=" + RandNum )); // запрос будет всегда уникальным //а значит забываем, что такое кеширование private function PostLoad (){ // еще надо удалить слушателя - глянь removeEventListener restart(); // и дальнейшие соображения } Последний раз редактировалось Nt9142; 30.04.2010 в 11:51. |
|
|||||
Цитата:
вот так можно попробовать |
|
|||||
Регистрация: Apr 2010
Адрес: Kemerovo
Сообщений: 11
|
чтобы избежать проблем с кодировкой, в ответах(otvet=скопировано) лучше использовать латынь(request=sucess), или же прописать поддержку кириллицы во Flash=)
немного накалябал пхп, объединив идею djyamato и задачу tkaChuck)
Последний раз редактировалось Nt9142; 30.04.2010 в 11:54. Причина: синтаксис, в т.ч. и русского языка:) |
|
|||||
Регистрация: Nov 2005
Сообщений: 48
|
отлично. большое спасибо, товарищи!
таким образом, ответ на мой вопрос и правда лежит в но есть одно но. чтото я вообще не могу представить как это выглядит синтаксически. и как это искать тоже неясно) типа чтото вроде Добавлено через 45 секунд но откуда возьмется в swfe событие по поводу того что там генерит пхп Добавлено через 16 часов 14 минут именно это я и имею ввиду. как это сделать |
|
|||||
Регистрация: Apr 2010
Адрес: Kemerovo
Сообщений: 11
|
Доброго времени суток, сейчас попробую набросать код и приложить в аттач.
Сорри за отсутствие) Цитата:
наконец-то добрался до редактора - высылаю код и исходники в аттачменте и код: package { import flash.display.Sprite; import flash.net.*; import flash.events.*; public class main extends Sprite{ //loader объявляю в классе - ибо чтобы он был виден и в PostLoad var loader : URLLoader = new URLLoader(); public function main(){ //За основу взял твой примерочный код и немного его дополнил var RandNum: String //уникальная стринга loader.addEventListener( Event.COMPLETE, PostLoad); RandNum = Math.round( Math.random() * 100000000 ).toString();// создаем уникальную строку // "revert.php?nocache=" loader.load( new URLRequest( "http://127.0.0.1/revert.php?nocache=" + RandNum )); // запрос будет всегда уникальным //а значит забываем, что такое кеширование } private function PostLoad (evt:Event){ loader.removeEventListener( Event.COMPLETE , PostLoad ); if (loader.data == "sucess"){ trace('замена успешна - здесь должен быть дальнейший код'); // ... } else { trace('замена произведена с ошибкой - здесь должен быть дальнейший код'); // ... } } } }
Последний раз редактировалось Nt9142; 05.05.2010 в 15:43. Причина: Атач |
Часовой пояс GMT +4, время: 23:21. |
|
« Предыдущая тема | Следующая тема » |
Опции темы | |
Опции просмотра | |
|
|