Я пытался сделать это уже много времени, но не могу. Вот моя проблема: у меня есть такая же веб-страница:

<html>
<body>
<div id="my_div">
<span id="txt">HELLO WORLD</span>
</div>
</body>
</html>

Теперь я хочу, чтобы div my_div обновлялся каждые X секунд, а также обновлял его содержимое. Как это сделать с помощью AJAX, JQUERY или JAVASCRIPT?

Обратите внимание: мне не нужен скрипт, обновляющий всю страницу. Обратите внимание (2): Я только что пытался найти что-то с помощью Google, но ничего не нашел.

Помогите, пожалуйста. У меня была эта проблема много времени.

Заранее спасибо!

9
gedamial 23 Ноя 2014 в 17:57
В каком смысле? Мне нужен код ajax, который обновляет div каждые X секунд.
 – 
gedamial
23 Ноя 2014 в 18:01

3 ответа

Лучший ответ

Использование jQuery load() и интервального таймера - самое простое.

setInterval(function(){
   $('#my_div').load('/path/to/server/source');
}, 2000) /* time in milliseconds (ie 2 seconds)*/

load() - это сокращенный метод для $.ajax

Это предполагает, что вы настроили сценарий на стороне сервера, который выводит содержимое только для этого элемента. Вы также можете использовать фрагмент селектора в URL load для синтаксического анализа всей страницы на предмет определенного содержания.

См. документацию по API load () .

17
charlietfl 23 Ноя 2014 в 18:10
АГА! Это то, что я искал! Спасибо! И еще одно: что, если я хочу обновить всю страницу?
 – 
gedamial
23 Ноя 2014 в 18:14
Если вы хотите перезагрузить всю страницу по таймеру, вы можете использовать
 – 
IanB
25 Окт 2017 в 16:59
Это не для использования ajax для обновления содержимого на странице
 – 
charlietfl
25 Окт 2017 в 18:37
- он отвечал на комментарий Микеле о том, как обновить всю страницу, но, по общему признанию, он не использует Ajax.
 – 
IanB
26 Окт 2017 в 18:56

Используя jQuery, вы можете динамически обновлять содержимое элемента, используя:

$("#my_div").html("... new content ...");

Новое содержимое заменяет исходное содержимое.

Используя метод setInterval (), вы можете заставить JavaScript выполняться каждый период:

Например:

window.setInterval(function() {
   $("#my_div").html("... new content ...");
}, 1000);

Будет заменять контент каждую секунду.

1
Kolban 23 Ноя 2014 в 18:01
Вы написали функцию ($ ("# my_div"). Html ("Hello")) {} вместо: function () {$ ("# my_div"). Html ("Hello")}
 – 
Kolban
28 Июн 2016 в 22:19

Вы можете написать что-нибудь вроде

var doSth = function () {

  var $md = $("#my_div");
  // Do something here
};
setInterval(doSth, 1000);//1000 is miliseconds
3
Kenny Tai Huynh 23 Ноя 2014 в 18:07