Как отключить обновление http-эквивалента в JavaScript? - PullRequest
4 голосов
/ 12 мая 2009

Я создаю страницу статуса, которая должна периодически обновляться.

Итак, я обновил http-эквивалент в разделе <head>, чтобы обновлять страницу каждую минуту:

<meta http-equiv="Refresh" id="refresh" content="60"/>

Но для браузера, поддерживающего JavaScript, я хотел бы отправить запрос Ajax, проверяющий, нужно ли обновить страницу или нет. Итак, я хотел бы отключить это обновление http-эквивалент в JavaScript (потому что это Ajax, который будет работать).

Я пытался удалить тег, используя JavaScript / PrototypeJs, но это не сработало:

 $('refresh').remove();

Похоже, что браузер отслеживает этот таймер и не заботится об обновлении DOM.

Есть идеи?

Ответы [ 3 ]

8 голосов
/ 12 мая 2009

Не совсем уверен, но возможно:

<noscript>
    <meta http-equiv="Refresh" id="refresh" content="60"/>
</noscript>
0 голосов
/ 12 мая 2009

Не думаю, что есть способ отключить обновление http-эквивалент.

Является ли страница состояния первой страницей в вашем приложении? Если нет, то почему бы не узнать возможности клиента заранее, прежде чем запрашивать страницу состояния? Если это так, то вам, возможно, придется внедрить страницу без пользовательского интерфейса, которая использует возможности браузера, и немедленно отправить обратно на страницу реального состояния. Все это предполагает, что вы не желаете использовать строку агента пользователя в заголовке HTTP для получения возможности браузера.

0 голосов
/ 12 мая 2009

Это будет лучше обрабатываться на сервере. Существует ряд инструментов, позволяющих вам надежно проверить, поддерживает ли браузер JS (BrowserHawk - тот, который приходит на ум), или вы можете проверить свойство SupportsECMAScript (в ASP.NET) объекта Browser и записать другой код, если браузер поддерживает JS.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...