Как автоматически обновить раздел страницы

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

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

Я бы хотел сделать это в PHP, но не знаю, с чего начать, из небольшого исследования я вижу, что Javascript и Ajax кажутся стандартом для этого, но я знаю эти языки не до нуля.

Спасибо за время и помощь людям.

О, данные, которые отображаются, поступают из базы данных, если это поможет.

Еще раз спасибо.

Ответ 1

Вы можете использовать Javascript-библиотеку, такую ​​как jQuery, и сделать что-то вроде упрощенного примера:

$("document").ready(function(){
  var interval = setInterval(refresh_box(), 60000);
  function refresh_box() {
    $("#myDiv").load('path/to/databasepage.php');
  }
} /*<= The closer ) bracket is missing in this line*/

а на странице path/to/databasepage.php вы можете выбрать свой запрос и выполнить эхо-результаты.

То, что это делает, устанавливает тайм-аут для вызова функции (в данном случае, refresh_box()) каждые 60 секунд (что составляет 60 000 миллисекунд) и загружает данные из path/to/databasepage.php в ваш div с id myDiv.

изменить

Если вы хотите остановить автоматическое обновление, вы можете связать элемент, чтобы очистить интервал, выполнив следующие действия:

// assuming you have a clickable element 
// (typically a button or so) id called 'stop_refresh'
$("#stop_refresh").click(function(){
  clearInterval(interval);
}

Ответ 2

Самый простой метод не включает даже PHP или JavaScript. Вы можете сделать это с помощью <iframe> в простом HTML. В iframe загружается страница HTML или PHP с соответствующим заголовком обновления, и она обновляется.

Главная страница HTML:

<html>
<head></head>
<body>
   static content

    <iframe id='dynamic-content' src='refreshing.php' />
</body>
</html>

refreshing.php страница:

<html>
<head>
  <!-- refresh every 5 seconds -->
  <meta http-equiv="refresh" content="5">
</head>
<body>
  dynamic content
</body>
</html>

Обратите внимание, что <meta http-equiv="refresh"> не рекомендуется для общего обновления всей страницы, но довольно безопасно использовать внутри iframe, который должен постоянно обновляться.

Ответ 3

Вы действительно не выполняете обновление в реальном времени для компонентов страницы в PHP, AJAX - это наиболее распространенное средство (Asynchronous Javascript и Xml), которое использует Javascript для опроса других сценариев (может быть .php-страниц), которые затем возвращают предопределенный вывод на основе запрос - этот вывод может быть содержимым для ввода на страницу или данных, которые затем могут быть интерпретированы вашей страницей для другого действия.

В этом случае ваша .php-страница будет включать в себя JS (javascript) в голове, будь то связанный или встроенный, который будет содержать детали для запуска запроса AJAX, а именно, как часто или на каком триггере (нажатие кнопки и т.д.), каким образом (POST или GET), что отправляется (любые другие переменные вы хотите), какой целевой script (script, который будет обрабатывать запрос и выводить требуемый контент/данные) и что делать когда ответ получен (т.е. какой элемент на странице должен быть обновлен с ответом).

Немного о AJAX:

http://webdesign.about.com/od/ajax/a/aa101705.htm

http://webtrends.about.com/od/web20/a/what-is-ajax.htm

Вероятно, самый простой способ начать - использовать уже существующую библиотеку Javascript, такую ​​как вездесущий jQuery (jquery.com), для этого есть тысячи обучающих программ, и, хотя вам нужно будет сделать некоторые Javascript-программирования, библиотека означает, что вы можете полагаться на довольно простой синтаксис, чтобы сделать это (так же просто, как $('#myelement').load('mypage.php')):

http://net.tutsplus.com/tutorials/javascript-ajax/5-ways-to-make-ajax-calls-with-jquery/

http://www.devirtuoso.com/2009/07/beginners-guide-to-using-ajax-with-jquery/

http://www.sitepoint.com/ajax-jquery/

http://yensdesign.com/2008/12/how-to-load-content-via-ajax-in-jquery/

Простыми словами:

  • У вас есть страница php с элементом, который нуждается в обновлении (страница A)
  • Создайте еще один php script, который выводит содержимое, которое вы хотите "обновлять", например. последние новости, каждый раз, когда он запускается (страница B)
  • Ссылка на библиотеку jQuery в разделе заголовка (страница A)
  • Напишите простую функцию jquery в разделе заголовка страницы A, в котором говорится, что каждые X секунд/минут запускают запрос AJAX для извлечения содержимого страницы B и вставки в элемент (DIV) на странице A

Ответ 4

Это действительно большой вопрос.

Наиболее распространенным способом было бы использовать AJAX, но вы также можете использовать базу данных javascript как TaffyDB - База данных JavaScript (никогда не использовала ее так я не могу действительно говорить об этом).

В любом случае самым простым способом было бы использовать JQUERY.