2011-02-07 2 views
2

i извлекает данные из базы данных, которая состоит из изображений, а также других полей, а затем кодирует их в json-формате с использованием php-скрипта. Теперь данные запрашиваются с телефона , что я хочу использовать кеш политики или что-то еще, то есть, если есть что-то в mysql, возможно, чтобы проверить , были ли данные отредактированы в базе данных с последнего запроса или нет, так что когда запрос приходит на страницу, он сначала проверяет, а затем отвечает . который может сэкономить время, ускорить запрос и уменьшить трафик на сервере.

я прочитал некоторые заметки о политике кэширования hereполитика кэша в php

если кто-то поможет мне вместе с примером или кода я буду очень благодарен

ответ

2

MySQL не может сказать вам, когда запись была изменена, но это очень просто сделать это: просто добавьте столбец timestamp в свои таблицы, в которые вы вставляете текущую дату и время каждый раз, когда вы изменяете запись. MySQL может сделать это автоматически путем установки инициализации и обновления поведения (см MySQL reference):

CREATE TABLE t (
lastmodified TIMESTAMP DEFAULT CURRENT_TIMESTAMP 
         ON UPDATE CURRENT_TIMESTAMP); 

Тогда все, что вам нужно сделать, это запрос, колонка вместе с другими данными и проверить его против If-Modified-Since заголовка, посланных клиент. Если дата и время в вашем результате более поздние, чем дата, предоставленная клиентом, вы возвращаете данные, как обычно. В противном случае просто отправьте заголовок 304 Not Modified без содержимого, чтобы клиент ничего не изменил со времени последнего запроса.

+1

http://www.kbedell.com/2009/03/07/how-to-create-a-timestampdatetime-column-in-mysql-to-automatically-be-set-with-the-current-time/ – Alfred

+0

Извините, чувак, я не понял, что хочу обновлять данные на сервере каждый раз, клиент просто отправляет запрос на эти данные, чтобы как клиент знал, что данные обновляются. не могли бы вы объяснить это с помощью примера – hunter

+0

мои данные извлекаются из трех таблиц, поэтому в эту таблицу я помещаю эту метку времени. – hunter