setTimeout
срабатывает только один раз после указанного времени ожидания.
Вам нужно вызвать setInterval()
для повторного вызова метода.
Однако ваш url
также выглядит недействительным. Эти { }
и пробельные символы не допускаются в строке запроса. Кроме того, вы должны передать метод в качестве первого аргумента setTimeout
и setInterval
также.
setInterval(updateMsg, 4000);
После форматирования вашего кода я должен исправить себя. Вы звоните setTimeout
в течение updateMsg()
, и должно работать. Так что я думаю, это просто проблема с вашей строкой запроса. Тем не менее, вы все равно должны передать метод setTimeout
:
$(document).ready(function(){
function updateMsg() {
$.ajax({
url: "/recent/messages/" + chat.key.id,
cache: false,
success: function(html){
$("#chatcontent").html(html);
}
});
setTimeout(updateMsg, 4000);
}
updateMsg();
});