глобальная задача - on-line отображение текстового файла в браузере. (т.е. сделал Ctrl+S на серваке, а F5 в клиенте не нада)))) предистория: с клиента первым запросом получаю содержимое файлика, вторым - его filemtime. тут всё ок ) далее делаю запрос этому скрипту: PHP: <?php function freshCheck($file_url, $file_last_time) { // Получаем время последнего изменения файла на сервере $file_next_time = filemtime($file_url); // Сравниваем if($file_last_time == $file_next_time) { sleep(1); freshCheck($file_url, $file_last_time); } else { echo "rotten"; } } // Получаем относительный адрес зарашиваемого файла $file_url = "../".$_GET['file']; // Получаем время последнего изменения файла на клиенте $file_last_time = $_GET['file_time']; // Запускаем цикличные проверки freshCheck($file_url, $file_last_time); ?> от него хочу одного - пусть крутится себе по циклу, а когда поймает изменение filemtime сделает ответ клиенту echo "rotten"; есть идеи лучше? цель - не отдавать реквеста, пока не измениться файл. эта реализация не работает... приводит к зависанию... изменения файла не чуствует... в чём дело? если передать завдомо не то время изменения файла, понятное дело срабатывает, ибо не циклится... возможно, дело не в бабине ) у реквеста оганичена продолжительность жизни? или допустимо ждать ответа сутками )))) заранее пасибы!
Эм... Я, конечно, не спец, но мне кажется, ты подвешиваешь исполнение скрипта. А значит клиенту ничего не передаётся вообще. А значит скрипт тупо висит и не дёргается... ИМХО, это нужно делать на яваскрипте. Раз в секунду запускать функцию, которая через ПХП скрипт проверит как там файл. И если файл изменился - выполнит действие. Но это имхо...
есть другие решения без зависания? сейчас так и работает (с клиента долбит по файлу) - плохое решение. запрос/ответ каждую секунду (эт ещё мало) сильно грузит клиет, трафик летит не по детски... обрабатывать изменение файла нужно на серваке! кто чё посоветует?
трафик между клиентом и сервером, при постоянных запросах скрипту проверки свежести файла. head запросы посморел... пасиба! полезно ) однако вопрос не в этом! вопрос касается только php! а именно, как заставить скрипт отвечать в момент изменения файлика???
~20кб/мин я считаю много, просто за то, что смотреть неизменяющийся файлик. ведь кроме него есть и запросы на обновление файлика )
Ну сделай раз в 5 секунд... Будет 4кб\мин... 4кб даже по меркам моего недешёвого инета оочень немного.
почему так упорно никто не предлагает решения на php??? раз в 5 сек не тема... не люблю экстенсивный подход )))
потому что пхп пофиг на то чо у тебя происходит на клиенте. К этому моменту он уже отработал и отключился.
Не можно, конечно, прийти на форум по 3Д Максу и добиваться, чтобы кто-нибудь ответил, как с помощью 3Д Макса написать CMS. Всякое бывает... Вдруг можно...
на моём хостинге max_execution_time = 30 причём, помнится нормально отрабатывали скрипты и по 10мин однако скрипт зависает ещё до истечения этого времени. вопрос: возможно ли заставить ,приведённый выше скрипт, корректно отработать свои 30сек ?
отдельное пасиба! 304 - тема ) если всё же не удастся найти серверного решения, буду с клиента смотреть статус... вот нашёл клиентское решение ) http://www.openhosting.co.uk/articles/webdev/6004/ правда дорабатывать придётся много ) зато идея прозрачна ))) думаю можно закрыть тему! усем пасибы!
в самом начале написал, что получать файлик я уже умею..... теперь решил как буду узнавать, что пора ) (при пустом ответе со статусом 304) вот и всё... уже тэст пашет... теперь осталось продумать часности (определять, на моём домене файлик или нет (еслт да - получать его исходник), автоматом подбирать скорость обновления (в зависимости от скорости отклика))