Обновление страницы

smoll

Новичок
Обновление страницы

Подскажите пожалуйста как реализовать, чтобы при каждом заходе на страницу она сама обновлялась. А то к примеру после добавления статьи новой, в списке где выводятся заголовки этих статей, она отобразится только после нажатия кнопки "Refresh". Для меня то не проблема нажать кнопку, а вот другие пользователи даже и не узнают что статья ещё появилась.
 

smoll

Новичок
Апокалипсис
Скажите пожалуйста, как реализовать это. Там параметр авто обновление через определённое колличество времени, и мне нужно один раз и при первой загрузке.
 

Апокалипсис

тех дир matras.ru
smoll
Нужно вначале понять, что клиент(браузер) получает информацию с сервера посредством запросов, сам сервер - ничего клиенту послать не может если в нем что то изменилось.
Как вариант - использовать ajax и раз в определенное время обращаться к серверу проверяя новые записи.
Но по моему, это лишнее - если у тебя не чат:)
 

pilot911

Новичок
Re: Обновление страницы

Автор оригинала: smoll
Подскажите пожалуйста как реализовать, чтобы при каждом заходе на страницу она сама обновлялась. А то к примеру после добавления статьи новой, в списке где выводятся заголовки этих статей, она отобразится только после нажатия кнопки "Refresh". Для меня то не проблема нажать кнопку, а вот другие пользователи даже и не узнают что статья ещё появилась.
по всей видимости, речь идет о том, что страница не запрашивается с сервера, а берется из кэша

необходимо вставить метатеги, которые указывают, что контент страницы устарел


<meta http-equiv="expires" content="Sunday, 15-Feb-2004 05:05:18 GMT">
<meta http-equiv="pragma" content="no-cache">

и другие - подробнее тут http://sblvsn.narod.ru/Docum/Cache.html
 

smoll

Новичок
Спасибо за помощь!

Действительно помагло.
Только вот почитав про это поподробней наткнулся на такую мысль, что поисковики игнорируют такие страницы, где дата устарела, или же как то плохо индексируют.
Скажите пожалуйста, это правда?
 

Иван 76

Новичок
Поисковики на дату смотрят. В частности, смотрят на http-заголовок Last-Modified.
Им это нужно по двум причинам.
- Во первых, они используют т.н. клиентский кэш, и сохраняют дату сверки при последующих сапросах страницы.
- Во вторых, в поисковиках предусмотрена возможность вывода результата запроса с сортировкой по дате.

Если проблема кроится в том, что браузер выводит страницу из своего кэша, без запроса на сервер (чем особенно болеет Опера), то можно порекомендовать отдавать со списком статьи http-заголовок с временем модификации таблицы в БД.
Это несложно реализовать, и будет безотказно работать.
 

smoll

Новичок
"отдавать со списком статьи http-заголовок с временем модификации таблицы в БД."
Очень всех прошу, особенно вас Иван, разжевать мне эту фразу. Вы меня совершенно правильно поняли, что мне сделать нужно.

-~{}~ 03.11.08 01:29:

Всё вот так решил оставить: "header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); // Date in the past" . В данном случае всё меня устаивает. Скажите этот вариант хороший?
 

Иван 76

Новичок
Вам нужно получить время модификации таблицы.
Например через запрос
SHOW TABLE STATUS LIKE 'table_name'

Дальше это время преобразовать в метку времени, см. mktime()
Потом отсылаем заголовок Last-Modified
Формат заголовка можно посмотреть здесь
http://phpclub.ru/faq/cahcing/ControlClientCachingWithPhp
Кстати, уж коль мы имеем от браузера время модификации, грех не использовать это для кеширования на стороне клиента.

-~{}~ 03.11.08 01:38:

>Всё вот так решил оставить: "header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");

Если эта страница доступна только в админке, - то так можно.
Но если ее смотрят посетители и поисковики - то это неправильно.
 

smoll

Новичок
Спасибо огромное! Чем больше узнаю этот PHP тем больше он мне нравится)
 

Bitterman

Новичок
smoll
Чем больше узнаю этот PHP тем больше он мне нравится
Самое смешное, что про PHP здесь вообще ничего нет. И именно об этом тебе пытались сказать в первом ответе.
 

Фанат

oncle terrible
Команда форума
По времени модификации таблицы - это гениально.
 

Beavis

Banned
smoll
а пишется это всё в блокноте, значит тема про блокнот?
 

fixxxer

К.О.
Партнер клуба
Вам нужно получить время модификации таблицы.
Например через запрос
SHOW TABLE STATUS LIKE 'table_name'
а почему не, например, время последнего обновления ядра ОС?
 

Фанат

oncle terrible
Команда форума
Так статьи лежат не в ядре, а в таблице =)
Идея-то дурацкая, но логику её понять можно.
 

dimagolov

Новичок
smoll, сохраняй время создания статьи вместе с ней же и эту дату отдавай как Last-Modified
 

dimagolov

Новичок
smoll, какой тебе код? тебе надо:
1. поменять структуру базу добавив поле с временем создания/изменения статьи
2. поменять все запросы вставки/изменения статей в базу
3. добавить в запрос на выборку статей это поле
4. использовать выбранное поле с датой для формирования заголовка Last-Modified

Ты всерьез полагаешь что это сделает кто-то вместо тебя иначе чем за деньги? Это же весь твой движок смотреть надо, где он статей касается.

-~{}~ 03.11.08 10:26:

п.с. если статей выводится на страницу больше одной, то надо будет смотреть время модификации последней.

п.п.с в свете предидущего замечания идея про SHOW TABLE STATUS становится не такой уж дурацкой, особенно если статьи не побиты на категории и всегда отображаются те, и только те, что "последние созданные"
 
Сверху