Intereting Posts

Обновите страницу PHP для каждой предопределенной секунды.

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

Я использовал META для этого

<META HTTP-EQUIV=Refresh CONTENT='10; URL=livedata.php'> 

Но все же я согласен, что мы также делаем это, используя:

  • Javascript для загрузки div по настройке
  • Динамическое обновление Ajax

Было бы здорово, если бы вы делились проблемами производительности, используя META, AJAX динамическое обновление, настройку Javascript. Также поделитесь лучшим способом сделать это.

Примечание. Необходимо обновить всю страницу, а не конкретный кадр или div.

Использование AJAX является наименее интуитивным для пользователя, поскольку пользователь не замечает, что что-то обновляется / перезагружается, пока оно не будет завершено.

Обратите внимание, что AJAX может работать лучше или хуже META в зависимости от ситуации:

  • Если данные, подлежащие обновлению, являются небольшими по отношению к полному размеру HTML-страницы, AJAX лучше, чем META, потому что с AJAX вы можете отправлять только разницу в данных и / или отправлять данные в более компактном формате, чем HTML.
  • Запуск JavaScript переносит нагрузку на браузер пользователя. Если у пользователя открыто 20 вкладок (что не является редкостью), и каждый из них запускает некоторый setTimeout в фоновом режиме, он может существенно повлиять на оперативность браузера, чтобы преобразовать все из них в бесплатное обновление без JavaScript.

Если вы планируете обновлять всю страницу, использование тегов <META> является самым чистым способом. Просто неудобно, чтобы таймер JS обновлял вашу страницу, когда у вас есть полностью поддерживаемый способ только для HTML.

Однако, если вам нужна только часть обновленной страницы, используйте AJAX. Это лучше с точки зрения пользовательского опыта, а также производительности.

использование javascript для извлечения динамического содержимого имеет еще одно преимущество: если контент не загружается за один раз, он все равно может продолжать пытаться. если вы перезагрузите всю страницу, и она не загрузится, тогда она остановится.

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

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

Для меня большая разница в использовании сервера. Если у вас есть 100 пользователей, освежающих каждые 10 секунд, это уже около 10 reqs / sec. В зависимости от логики вы должны сгенерировать страницу (что, скорее всего, динамическое), это может привести к быстрому росту использования сервера. Удостоверьтесь, что вы осторожны в этом.

обратите внимание, что вы также можете использовать header () в PHP для выполнения того, что делает метатег. Просто убедитесь, что вы вызываете вызов header () перед другим выходом.

С помощью jQuery вы можете это сделать):

 var seconds = 10; var id = setInterval(function() { $('#container').load('whatever.php'); }, 1000*seconds); 

🙂