2016-11-23 5 views
1

Мне нужно загрузить понравилось в div через AJAX, каждую секунду.Обновить содержимое страницы через AJAX

Имя страницы должно быть like.php? P = 0 на странице load, likes.php? P = 1 через 1 секунду, likes.php? P = 2 afrer 2 seconds и т. Д.

Мой код:

var loadLikes = function() { 
    var counter = 0; 
    var pageToLoad = 'likes.php' + "?p=" + counter; 

    $.ajax({ 
     url: pageToLoad, 
     dataType: 'html', 
     success: function(html) { 
      counter++; 
     } 
    }); 
    console.log(pageToLoad);  
} 

$(window).load(loadLikes); 
setInterval(loadLikes, 1000); 

Консоль (как ни странно, на мой взгляд) показывает likes.php р = 0?.

Что я делаю неправильно?

Спасибо!

+0

положить console.log в вашем методе успеха после того, как счетчик ++ –

+1

Interval может ссылаться на свой обработчик до того успеха ... – Rayon

+0

затем начать с 1 var counter = 1; –

ответ

1

Я думаю, вы должны поместить функцию счетчика вне функции. В противном случае каждый раз, когда эта переменная будет сброшена на 0;

var counter = 0; 

var loadLikes = function() { 

var pageToLoad = 'likes.php' + "?p=" + counter; 

$.ajax({ 
    url: pageToLoad, 
    dataType: 'html', 
    success: function(html) { 
     counter++; 
    } 
}); 
console.log(pageToLoad);  
} 

$(window).load(loadLikes); 
setInterval(loadLikes, 1000); 
1

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

success: function(html) { 
    pageToLoad = 'likes.php' + "?p=" + ++counter; 
} 
+0

Действительная точка, также рассмотреть комментарии .. – Rayon

+0

В этом случае 'counter' будет всегда быть равно 1 после конкатенации строк –

+0

Почему? ++ счетчик увеличивает переменную на успех каждый раз – VadimB

-1

вы использованияКонтактная «счетчик» переменная в функции «loadLikes» и каждый раз, когда вы звоните «loadLikes» это получить значение 0.

вы должны объявить «счетчик» переменной вне функции «loadLikes»

var counter = 0; 
var loadLikes = function() { 

    var pageToLoad = 'likes.php' + "?p=" + counter; 

    $.ajax({ 
     url: pageToLoad, 
     dataType: 'html', 
     success: function(html) { 
      counter++; 
/* change your div html here 
for example : $(div).html(html); 
*/ 
     } 
    }); 
    console.log(pageToLoad);  
}; 

$(document).ready(function(){ 
setInterval(loadLikes, 1000); 
}); 
Смежные вопросы