Я использую 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
Если ваша БД отражает изменения немедленно, а доступ к сайту через localhost отражает их немедленно, но при внешнем доступе изменения появляются медленно, моя первая реакция - вам нужно проверить кеширование.
Это может помочь вам начать работу с кешированием Apache: http://httpd.apache.org/docs/2.2/caching.html
Если вы обслуживаете через Varnish, это также инструмент для кеширования и обратного прокси. Кроме того, ваш браузер может кэшировать вас, не говоря уже о том, что вы используете стандартный веб-прокси.