Javascript 通过AJAX刷新页面内容
我需要每秒通过AJAX将一个like加载到div中 页面的名称在页面加载时应为likes.php?p=0,1秒后为likes.php?p=1,2秒后为likes.php?p=2,依此类推 我的代码: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
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为什么++每次成功时计数器增加变量