2015-05-30 5 views
3

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

Я читал, что если я добавлю случайное число в свой url, я могу избежать кеша, но все равно не работаю.

Я попытался поместить эти заголовки на php.

header("Cache-Control: private, no-store, no-cache, must-revalidate"); 
header("Cache-Control: post-check=0, pre-check=0", false); 
header("Pragma: no-cache"); 

И я попробовал этот тоже:

SELECT SQL_NO_CACHE... 

Без работы. Все еще не видно никаких видимых изменений.

+0

Просьба указать, используете ли вы какие-либо рамки. например. wordpress, drupal, cakePHP, yii, symfony и т. д. или какой-то механизм шаблонов, который может кэшировать. например. twig ... – JonnieJS

+0

Вы пытались добавить заголовок 'Expires', установив его на 0? – Michel

+0

Нет, это просто простой php. – hilk

ответ

0

Попробуйте использовать заголовки Expires в файле htaccess. Вам нужно будет попросить вашего пользователя Ctrl + F5 (принудительное обновление), чтобы он правильно вступил в силу;

<IfModule mod_expires.c> 
    ExpiresActive on 
    ExpiresByType text/html "access plus 0 seconds" 
</IfModule> 

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

+0

Извините, у меня нет разрешения на доступ .htaccess на моем веб-сервере. – hilk

+0

Если у вас есть ftp-доступ, вы можете загрузить его в свой корневой каталог, большинство общедоступных хостов все еще разрешают его, просто не редактируя php.ini. Если нет, извините, я не мог бы оказать большую помощь. – Tarquin

Смежные вопросы