Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/401.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 通过AJAX刷新页面内容_Javascript_Php_Jquery_Ajax - Fatal编程技术网

Javascript 通过AJAX刷新页面内容

Javascript 通过AJAX刷新页面内容,javascript,php,jquery,ajax,Javascript,Php,Jquery,Ajax,我需要每秒通过AJAX将一个like加载到div中 页面的名称在页面加载时应为likes.php?p=0,1秒后为likes.php?p=1,2秒后为likes.php?p=2,依此类推 我的代码: var loadLikes = function() { var counter = 0; var pageToLoad = 'likes.php' + "?p=" + counter; $.ajax({ url: pageToLoad, d

我需要每秒通过AJAX将一个like加载到div中

页面的名称在页面加载时应为likes.php?p=0,1秒后为likes.php?p=1,2秒后为likes.php?p=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

我做错了什么


谢谢大家!

似乎在更新计数器后也需要更新
页面加载
,因为初始结果已存储在变量中,不再更改

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

我认为你应该把计数器变量放在函数外。否则,每次该变量将重置为
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);

您正在“loadLikes”函数中使用“counter”变量,每次调用“loadLikes”时,都会得到0值

您必须在“loadLikes”函数之外声明“counter”变量

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);
});

将console.log放在counter++之后的success方法中,Interval可以在成功之前调用其处理程序…然后从1 var counter=1开始;每次调用函数
loadLikes()
,都将
var计数器设置为0正如@A.Wolff已经指出的那样。你启动你的功能,每次你重置你的计数器。你应该将你的“pagToLoad”拆分成
数据:{Key:val}
Check->在这种情况下,
计数器在字符串连接后总是等于1为什么++每次成功时计数器增加变量