В шапку сайта подключил jQuery:
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js"></script>
Строчкой ниже написал небольшой JS:
<script type="text/javascript">
function mode() {
$.ajax({
url: 'mode.php',
success: function(data) {
$('#display').html(data);
}
});
};
setInterval(mode, 10000);
</script>
В шаблоне странице, там, где мне нужен самообновляющийся блок добавляю DIV:
<div id="display"></div>
Вот и все, теперь блок работает, как и было задумано!
Что же за строки кода я такие тут нагородил?
Думаю,что про подключенный файл jquery.min.js объяснять не стоит, тут и так понятно, но если, что, то: Как подключить библиотеку jQuery. Вот дальше я создал функцию JS mode(), которая вызывает функцию $.ajax() с набором определенных параметров. И так, первый параметр:
url: 'mode.php',
Данный параметр обращается к файлу mode.php, в котором генерируется контент для блока. Далее:
success: function(data) {
$('#display').html(data);
}
Этот параметр:
success
(вернее то, что в нем: $('#display').html(data);
) записывает в контейнер сгенерированный контент, если конечно запрос прошел успешно. Контейнером в данном примере является display
, то есть:
<div id="display"></div>
Далее строка:
setInterval(mode, 10000);
Функции setInterval() вызывает функцию mode(), каждые десять секунд (
10000
). Одна секунда равняется числу - 1000
.Хочу показать ещё один пример ajax запроса в функции mode() (из первого поста):
function mode() {
$('#display').load('mode.php');
};
Здесь так же, как и в первом примере, результат выполнения сценария в файле mode.php, будет загружен в контейнер display, в блок
<div>
.
Тут так же можно заставить функцию mode() делать запрос через определенное время, для получения нового контента:
setInterval(mode, 10000);
На последок покажу пример, пару строк кода в файле mode.php:
<?php
echo time(); // Текущее время в секундах будет передано в блок <div id="display"></div>
Разумеется передавать можно любую строку.
Читайте еще: Ajax на чистом JavaScript.