Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Отложенная запись файла, Файл не успевает записаться до чтения 
:(
    Опции темы
Paher
Дата 16.10.2009, 14:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 155
Регистрация: 18.8.2009

Репутация: нет
Всего: нет



Добрый день!!! 
Подскажите, кто знает. Дело в следующем. Из основного скрипта вызывается функция, эта функция создает файл с данными и возвращает управление. Далее скрипт начинает работать с этим файлом. Проблема в том, что файл начинает использоваться до того, как запишется на винт. В чем косяк? как сделать так, чтобы функция возвращала управление только после полной записи файла на диск?

Это сообщение отредактировал(а) Paher - 16.10.2009, 14:37
PM MAIL   Вверх
lelik133
Дата 16.10.2009, 15:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Awaiting Authorisation
Сообщений: 517
Регистрация: 5.2.2003
Где: Москва

Репутация: 5
Всего: 14



это как же  так получается?
вызвали функцию func(); пока она не завершится управление обратно в точку ее вызова не вернется.
поэтому как может начаться чтение файла, которое идет после вызова функции, как я понял, до того как функция отработает и вернет управление?
PM ICQ   Вверх
Paher
Дата 16.10.2009, 15:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 155
Регистрация: 18.8.2009

Репутация: нет
Всего: нет



Сам не понимаю... Может, лучше рассказать  подробнее.  пхп процедура запускается при нажатии кнопки в окне браузера( т.е. пользователь инициирует создание файла на сервере, используется AJAX). Сразу же после вызова этой процедуры в теории должен скачиваться полученный файл с помощью следующей команды JS

Код

window.open(host+'/files/export.zip', 'Download');


Однако в реальности открывается новая вкладка с адресом host+'/files/export.zip' с ошибкой о ненайденом файле. Если тут же нажать F5, то файл скачивается нормально, как уже существующий.

P.S.  Что интересно, на виндовом сервере все работает, как надо, а вот линух подводит ожидания
PM MAIL   Вверх
lelik133
Дата 16.10.2009, 15:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Awaiting Authorisation
Сообщений: 517
Регистрация: 5.2.2003
Где: Москва

Репутация: 5
Всего: 14



думаю не php и не в linux дело
скорее js код не дожидается ответа от php скрипта который он дергает.
как вызываете его?
PM ICQ   Вверх
Paher
Дата 16.10.2009, 16:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 155
Регистрация: 18.8.2009

Репутация: нет
Всего: нет



Но в винде-то работает...

Использую библиотеку extjs    создаю data.proxy c url host+'/files/export.zip' , и при нажатии на кнопку data.store.load()
PM MAIL   Вверх
NewDima
Дата 16.10.2009, 16:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 922
Регистрация: 20.2.2006
Где: <?here?>

Репутация: 10
Всего: 12



Paher, можно подробнее последовательность действий? а то первое сообщение сильно отличается от второго. Промежутки между запросом аякса и остальным не выидны
PM ICQ   Вверх
bars80080
Дата 16.10.2009, 18:38 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 71
Всего: 315



Цитата(Paher @  16.10.2009,  16:02 Найти цитируемый пост)
Но в винде-то работает...

на локали у себя всё быстро работает

а там пока сервер подумает, решит что-то сделать, а вы его уже вторым запросом на существование файла пытаете

в аякс есть настройка, которая позволяет не выполнять следующие действия, пока не будет получен ответ с сервера
а во-вторых, обычно последующие действия всегда ставят по достижению readystate = 4
PM MAIL WWW   Вверх
Paher
Дата 19.10.2009, 08:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 155
Регистрация: 18.8.2009

Репутация: нет
Всего: нет



Спасибо, буду искать настройку задержки
PM MAIL   Вверх
Ипатьев
Дата 19.10.2009, 09:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2232
Регистрация: 5.7.2009

Репутация: 28
Всего: 37



Больше всего порадовало описание задачи. "Из основного скрипта вызывается функция". Из PHP скрипта. Функция. И возвращает управление.

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0468 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.