Альтернативы использованию мета-рефеш для обновления страницы - PullRequest
1 голос
/ 22 ноября 2010

В прошлом, когда я освещал события, я использовал мета-обновление с 5-минутным таймером для обновления страницы, чтобы люди получали последние обновления.

Понимая, что это может быть не идеальный способ сделать это (не всегда работает в IE, прерывает поток людей, перезапускает вещи для людей с программами чтения с экрана и т. Д.) Мне интересно, есть ли другой способ разобраться в этой ситуации.

Можно ли проводить что-то вроде проверки ajax каждые несколько минут, если html-файл на сервере новее, и он распечатывает сообщение «Обновление информации доступно, нажмите здесь, чтобы обновить»?

Если это безумие, как насчет javascript, который просто отсчитывает от 5 минут и предлагает просто обновить.

Если бы кто-нибудь мог указать мне на учебники или фрагменты кода, я был бы признателен. Я просто играю программиста на телевидении. : -)

Ответы [ 4 ]

1 голос
/ 22 ноября 2010

На самом деле, ваша мысль о тестировании Ajax по времени - отличная идея. Я не уверен, что это именно то, что использует StackOverflow, но он периодически проверяет, были ли опубликованы другие ответы, и показывает пользователю, с интервалом, если есть обновления.

Я думаю, что это идеально по следующим причинам:

  • Это ненавязчиво - читатель может легко проигнорировать обновление, если ему все равно
  • Это не приведет к потере пропускной способности - без перезагрузки, если пользователь не выберет
  • Это информативно - пользователь знает, что есть обновление, и может по нему действовать.

Мое предположение о том, как ajax-скрипт отправляет последний идентификатор сообщения в скрипт, который проверяет наличие новых скриптов. Этот скрипт может запрашивать вашу базу данных, чтобы узнать, есть ли новые сообщения и сколько их. Он может вернуть этот номер. Если есть новые сообщения, покажите какое-нибудь (немодальное) сообщение, включая количество обновлений, и позвольте пользователю решать, что с этим делать.

0 голосов
/ 22 ноября 2010

Если пользователь будет взаимодействовать с партитурами и нажимать на них, было бы немного грубо просто обновить страницу на них.Я думаю, что сделать что-то вроде уведомления о том, что страница обновлена, было бы идеально.

Я бы использовал jQuery и сделал бы ajax-вызов файла на сервере или что-то, что вернет обновленные данные.Если это новее, чем выбросить сообщение Growl

Gritter - jQuery Growl System Демонстрация того, что Growl использует Gritter

Сообщение Growl будетвозможно, придумать что-нибудь, что было изменено, новые оценки, а затем возможность в этом сообщении обновить и просмотреть новые результаты.

jQuery Ajax information

0 голосов
/ 22 ноября 2010

Вы можете использовать функцию setInterval в javascript.

вот образец

setInterval("refresh function", milliseconds, lang);

Вы будете использовать его, передавая имя функции, которая фактически обновляет страницу для первого параметра, и количество миллисекунд между обновлением для второго параметра (300000 в течение 5 минут). Третий параметр lang является необязательным

0 голосов
/ 22 ноября 2010
setInterval(function() {
  if (confirm("Its Been 5 Minutes. Would you like to refresh")) {
    window.location.reload(true);
    //Or instead of refreshing the page you could make an ajax call and determing if a newer page exists.  IF one does then reload.

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