Как автоматически обновить раздел страницы
У меня есть часть страницы, в которой есть живые данные, я думал просто обновлять страницу каждые пару минут, но это не так, потому что другие элементы страницы.
Как я могу это сделать? Какой язык я могу использовать для этого, что легко сделать, а что нет, что хорошо работает, а что нет. Возможно, некоторые четкие руководства или даже примеры кода.
Я бы хотел сделать это в 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.