Отображение устаревшей информации при использовании WAMP в качестве локального сервера
Я использую WAMP в качестве локального сервера для компьютеров в моей сети.
Проблема в том, что когда я пытаюсь выполнить какие-либо операции с базой данных с этих компьютеров, создается впечатление, что они не происходят, даже если они и происходят.
У меня есть таблица MySQL называется person
с полями id,lastname,name
когда я пытаюсь добавить новый person
или отредактируйте один из них, все выглядит нормально, но когда я проверяю, person
было добавлено / отредактировано, кажется, что нет, даже когда я захожу в свою базу данных, изменения были сделаны.
Покопавшись немного дальше, я понял, что когда я получаю доступ к своей системе через http://localhost/system/
все изменения в базе отражаются сразу, но когда я получаю доступ к системе через IP-адрес http://12.12.123.12/system/
обновления не отображаются, пока я не закрою веб-страницу или не нажму кнопку обновления около 5 раз.
httpd.conf
ServerRoot "c:/wamp/bin/apache/apache2.2.21"
Listen 80
ServerName localhost:80
DocumentRoot "c:/wamp/www/"
<Directory />
Options FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
</Directory>
<Directory "c:/wamp/www/">
Options Indexes FollowSymLinks
AllowOverride all
Order Allow,Deny
Allow from all
</Directory>
Короче говоря, все работает на стороне базы данных, и когда я просматриваю свою страницу через localhost
все работает нормально, проблема в том, когда я получаю к нему доступ с IP-адреса
ЗАКЛЮЧИТЕЛЬНОЕ ОБНОВЛЕНИЕ
Мое приложение имело <iframe>
он содержал все необходимые формы для отображения информации, оказалось, что это был кадр, который не обновлялся, поэтому он показывал устаревшую информацию. Мне пришлось добавить 2 строки кода, чтобы он не кэшировал информацию и всегда отображал текущую информацию. Вот что я добавил:
header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1
header("Expires: Sat, 26 Jul 1997 05:00:00 GMT"); // Date in the past
1 ответ
Если ваша БД отражает изменения немедленно, а доступ к сайту через localhost отражает их немедленно, но изменения появляются медленно при внешнем доступе, моя первая реакция заключается в том, что вам нужно проверить наличие кэширования.
Это может помочь вам начать работу с Apache Caching: http://httpd.apache.org/docs/2.2/caching.html
Если вы работаете через Varnish, это также инструмент кеширования и обратного прокси. Кроме того, ваш браузер может кэшировать вас, не говоря уже о том, проходите ли вы через стандартный веб-прокси