通过AJAX刷新页面内容

时间:2016-11-23 09:03:39

标签: javascript php jquery ajax

我需要通过AJAX 每秒加载到div中。

页面的名称应该是like.php?p = 0页面加载,likes.php?p = 1 1秒后,likes.php?p = 2 afrer 2秒,依此类推。

我的代码:

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?p = 0

我做错了什么?

谢谢!

3 个答案:

答案 0 :(得分:1)

似乎您需要在更新计数器后更新pageToLoad,因为您的初始结果已存储在您的变量中,并且不再更改。

success: function(html) {
   pageToLoad = 'likes.php' + "?p=" + ++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);

答案 2 :(得分:-1)

你在'loadLikes'函数中使用'counter'变量,每次调用'loadLikes'时它都会得到0值。

你必须在'loadLikes'函数之外声明'counter'变量

volatile