Могу ли я отложить следующую строку кода до ее выполнения? - PullRequest
0 голосов
/ 26 декабря 2011

У меня есть кнопка в моем приложении для iOS, когда я нажимаю на эту кнопку, она будет делать:

  1. вызов PHP-сервера для запуска сценария (который запрашивает базу данных из MySQL и переписывает ее вФайл SQLite)
  2. загрузить файл xxx.sqlite

Так что когда-нибудь, когда сервер зависает или замедляется, приложение будет загружаться, когда 1-й шаг еще не сделан, возможно, мне нуженспособ задержать код или в любом случае я могу проверить файл, завершено ли преобразование из MySQL в файл SQLite?

спасибо за каждый ответ :)

Ответы [ 2 ]

0 голосов
/ 26 декабря 2011

Используйте синхронный ASIHTTPRequest для ваших серверов. Ваше приложение будет зависать и ждать, пока сервер завершит работу с запросом и вернет файл.

Используйте асинхронный ASIHTTPRequest, если вы хотите загрузить константу в фоновом режиме.

0 голосов
/ 26 декабря 2011

Один способ сделать что-то вроде этого

php скрипт:

unlink sqlite.file.md5
generate sqlite.file
calculate md5 sum of sqlite.file and output it in sqlite.file.md5

и клиент должен сделать:

download sqlite.file.md5
if not found:
    wait some time and try again (in progress)

download sqlite.file
calculate md5 of sqlite.file and compare it with sqlite.file.md5
if there is a mismatch you probably downloaded in the middle of generation

на самом деле вы не знаете, сколько времени вам нужно, чтобы отложить загрузку, ваш php-скрипт также не знает (например: в зависимости от планировщика ОС он может голодать немного, и каждое поколение может завершиться в разные промежутки времени) вы можете знать только когда генерация завершена

EDIT: или вы можете просто вставить одну запись в конец файла sqlite после завершения генерации а затем проверьте, существует ли он в загруженном файле

...