2013-06-25 2 views
1

Как проверить html-файл в Интернете, если он изменился? Но он может не проверять первые 3 строки для обновлений, так как отображает время. На веб-сайте не используется база данных mysql или sqlite. И это не есть система RSS FEEDПроверить html для обновлений каждые 15 минут

ответ

1

Обычно, добавьте в строку заголовка в запросе:

If-Modified-Since: Sun Nov 6 08:49:37 1994 

, а затем сервер определяет, если веб-страница изменилась с тех пор, и возвращает 304 ответ если не. Если веб-страница создается сценарием CGI, то для этого будет решаться, изменилась ли страница.

Поскольку вы говорите, что первые три строки веб-страницы отображают время, я предполагаю, что веб-страница генерируется сценарием CGI. Вы не указали, на каком языке написан этот сценарий, но в любом случае вам нужно захватить заголовок If-Modified-Since запроса, проанализировать дату и решить, имеет ли содержание страницы был изменен с этой даты.

+0

Но что, если веб-сервер не поддерживает это? –

+0

Если вы обслуживаете статический континент, и веб-сервер не поддерживает * If-Modified-Since * для статического контента, то вы в значительной степени одеты. Если содержимое генерируется сценарием CGI, а сервер не позволяет сценариям CGI видеть заголовки запросов, вы также получаете кость. В противном случае скрипт CGI должен решить, нужно ли возвращать код 304 или нет. –

1

Должно ли это быть каждые 15 минут? Если то, что вы действительно ищете, является уведомлением каждый раз, когда изменяется страница HTML, вы должны посмотреть Google Cloud Messaging (GCM). Эта система генерирует уведомление, отправленное вашим приложением сервером.

У GCM есть преимущества, которые могут быть неочевидными. Самый большой из них - срок службы батареи; постоянный опрос истощает аккумулятор устройства. Для сравнения, сообщения GCM принимаются мгновенно, когда устройство подключено к сети, но не активно отправляет. Кроме того, сообщения GCM помещаются в очередь и объединяются, поэтому, когда устройство отключено, а затем возвращается в сеть, отправляется только одно сообщение.

GCM также гарантирует, что ваше приложение использует сеть только в том случае, если ей необходимо получить данные. Это позволяет другим приложениям использовать сеть с большей готовностью.

+0

Нет, это не должно быть 15 минут, это был всего лишь пример. но я не хочу, чтобы приложение проверяло его каждую секунду, потому что это загружает массу мб –