Хотя это, вероятно, приведет к высокому использованию ресурсов сервера и не очень рекомендуется, вы можете действовать следующим образом.
- Сервер, который будет брать файл с другого сервера, назовем его КЛИЕНТ.
- Сервер, который будет содержать новую информацию для копирования КЛИЕНТОМ, назовем его СЕРВЕР.
На КЛИЕНТЕ создайте PHP-скрипт, который использует CURL для загрузки только заголовков удаленного файла и, в частности, даты изменения.
В следующем ответе содержится полезный фрагмент.
Сохраните эту дату, и при следующем запуске сценария проверьте, обновлен ли он, затем загрузите полный исходный код, включая тело, и сохраните его, как вам нравится (например, в локальный текстовый файл на КЛИЕНТЕ).
Снова на КЛИЕНТЕ создайте cronjob, который будет запускаться каждую секунду или каждые 5 секунд или так часто, как вы хотите, чтобы содержимое обновлялось. Это может пригодиться для настройки cronjob.
В качестве альтернативы вы можете создать один PHP-скрипт, который зациклится и что-то сделает (загрузит удаленный файл) и заснет на 1 секунду, делая это в общей сложности 60 секунд, а затем останавливаясь. Объедините это с cronjob, который запускается каждую минуту, и вы получите тот же эффект, без вызова cron на сервер CLIENT каждую секунду. Чтобы увидеть реализацию этого подхода, см. этот вопрос и его принятый ответ.
Лучшей и рекомендуемой альтернативой является использование AJAX, который запускается на стороне клиента. Заставьте его запускаться, как только мышь пользователя перемещается, и извлекайте дату с СЕРВЕРА через API, который вы можете выставить на стороне СЕРВЕРА (например, тот, который будет возвращать данные в формате JSON для анализа библиотекой JavaScript, такой как jQuery, внутри браузера пользователя ). Стена Facebook закодирована таким образом. Если вы просто оставите стену открытой на фоновой вкладке, она не загрузит никакого нового контента. Как только вы вернетесь к нему и наведете курсор мыши, отобразятся новые сообщения.
person
Dzhuneyt
schedule
26.09.2012