форум общения русскоязычных пользователей CMS Текстпаттерн
Вы не зашли.
Почему-то главная страница у меня кэшируется.
Все что на ней находится: опросы,...
Т. е. если кто-то скажем, проголосовал это видно только если: открыть полную статью, открыть др. секцию, и т. п.
Когда возвращаюсь снова на Гл. вижу опять старую статистику.
Рефреш на главной странице не помогает.
Как сделать, чтобы на главной странице не было кэширования?
Неактивен
Чтобы избежать кэширования, попробуйте посылать соответсвующий заголовок. Наверняка есть какой-нибудь плагин, но мне не охота искать. Я бы по-быстряку написал так:
<txp:if_section name=""> <txp:php> header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 header("Expires: Sat, 26 Jul 1997 05:00:00 GMT"); // Date in the past </txp:php> </txp:if_section>
Писать это надо в начале вашего шаблона.
Дата указана специально в прошлом. Мы как бы намекаем браузеру, что страницу надо обновить.
Неактивен
Спасибо, а с определенными form-ами можно такое сделать?
Неактивен
Отсылка загловков должна идти до любых других данных! Т.е. код должен смотреться как минимум так:
<txp:if_section name=""><txp:php> header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 header("Expires: Sat, 26 Jul 1997 05:00:00 GMT"); // Date in the past </txp:php> </txp:if_section>
Неактивен
alivato написал:
Спасибо, а с определенными form-ами можно такое сделать?
the_ghost написал:
Отсылка загловков должна идти до любых других данных! Т.е. код должен смотреться как минимум так:
То есть вам уже ответили. С отдельными формами так не получится.
Неактивен
1) Надо еще не забыть отключить HTTP/1.0 304 Not Modified - это в настройках
2) Что-бы избавиться от <txp:php> (некоторые его не любят) можно выводить соответствующие meta, тогда и в начало шаблона не обязательно - просто в секцию head.
Отредактированно shumomer (15-04-2011 15:45:54)
Неактивен
shumomer написал:
2) Что-бы избавиться от <txp:php> (некоторые его не любят) можно выводить соответствующие meta, тогда и в начало шаблона не обязательно - просто в секцию head.
МЕТА данные не всегда воспринимаются браузерами адекватно. Часто игнорируются.
Неактивен
В head или в body писать код?
Страница
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ru" lang="ru">
<txp:output_form form="head" />
<body>
<div id="topOfPage"><a name="topOfPage"> </a></div>
<div id="conteiner">
<txp:output_form form="header" />
<txp:output_form form="bar" />
<div id="top"></div>
<div id="body">
<div class="zagolovok"><h1><txp:section title="1" link="0" /></h1></div>
<txp:output_form form="sidebar" />
<div class="general">
<txp:article limit="5" />
</div>
</div>
<div class="backart">
<div id="footer">
<p>
Copyright ©<div id="foot"></p>
<div id="foot">
<div class="pagis">
<txp:ob1_pagination firsttext="<<" previoustext="<" nexttext=">" lasttext=">>" ulclass="paginator" /></div>
</div>
</div>
</div>
</div>
</div>
</body>
</html>
форма head
<head>
<title><txp:ob1_title order="article,sitename" separator=" — " /></title>
<meta name="description" content="*******************">
<meta name="keywords" content="*******************">
<meta http-equiv="content-type" content="text/html;charset=utf-8" />
<link rel="stylesheet" href="<txp:site_url />styles/default.css" type="text/css" />
<link rel="shortcut icon" href="<txp:site_url />pic/favicon.ico" type="image/x-icon" />
</head>
Отредактированно alivato (15-04-2011 17:42:03)
Неактивен
Как сделать так чтобы не кэшировалась форма <txp:output_form form="sidebar" /> ?
Пробовал вставить код в head
<txp:if_section name="default">
<txp:php>
header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1
header("Expires: Sat, 26 Jul 1997 05:00:00 GMT"); // Date in the past
</txp:php>
</txp:if_section>
Однако, статистика в sidebar-e все равно старая, рефреш не помогает.
--------------------------------
Пробовал плагин aks_cache
<txp:aks_cache>
<txp:output_form form="sidebar" />
<txp:aks_cache_disable />
</txp:aks_cache>
Все равно статистика старая.
?
Отредактированно alivato (15-04-2011 19:00:31)
Неактивен
alivato - вы наверное не до конца понимаете механизма кеширования и того, как работает TXP.
У посетителя кешируется не отдельная форма, а вся страница, которая состоит из форм, стилей и т.п. Чтобы принудить браузер не кешировать, существует много решений: отсылка заголовка - но его надо слать до любых данных (т.е. код, его отправляющий должен быть в самом верху страницы), мета теги - не очень надежно, .htaccess - достаточно надежно.
Неактивен
В общем сделал так:
<txp:php>
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
header('Cache-Control: no-store, no-cache, must-revalidate');
header('Cache-Control: post-check=0, pre-check=0', FALSE);
header('Pragma: no-cache');
</txp:php>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ru" lang="ru">
<txp:output_form form="head" />
<body>
...
Отредактированно alivato (17-04-2011 01:07:02)
Неактивен
По мне, так shumomer прав. Зачем делать из мухи слона, когда можно использовать просто мета тег
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
Неактивен