Я хотел бы загрузить / обновить конкретную страницу за каждые 10 секунд, чтобы просмотреть обновленные данные, полученные из базы данных.
Я использовал META для этого
<META HTTP-EQUIV=Refresh CONTENT='10; URL=livedata.php'>
Но все же я согласен, что мы также делаем это, используя:
- Javascript для загрузки div по настройке
- Динамическое обновление Ajax
Было бы здорово, если бы вы делились проблемами производительности, используя META, AJAX динамическое обновление, настройку Javascript. Также поделитесь лучшим способом сделать это.
Примечание. Необходимо обновить всю страницу, а не конкретный кадр или div.
Использование AJAX является наименее интуитивным для пользователя, поскольку пользователь не замечает, что что-то обновляется / перезагружается, пока оно не будет завершено.
Обратите внимание, что AJAX может работать лучше или хуже META в зависимости от ситуации:
Если вы планируете обновлять всю страницу, использование тегов <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);
🙂