我使用setinterval每10分钟运行一次ajax调用。该调用是从php页面获取新的帖子数据并将其投入变量。当我想加载新的帖子数据时,我会点击一个链接,它会在页面前面加载。
我遇到的问题是,如果页面处于非活动状态30分钟,它会运行ajax调用3次(每次分钟)。然后,当我单击链接以加载新帖子时,它们会被加载3次。
我需要它们才能加载一次。
这是我的代码。
var getNewPosts = function() {
$.ajax({
type: 'GET',
url: 'interactions/get_new_posts.php',
async: true,
cache: false,
//dataType: 'json',
success: function(results) {
var data = results;
// New Posts
var instagramPosts = $(data).find('#instagramPosts').html();
//Load new Instagram Posts
$(document).one('click', '.instagram_menu', function(e) {
$('#feed_wrap').prepend(instagramPosts).isotope( 'reloadItems' ).isotope({ sortBy: 'original-order' });
console.log(instagramPosts);
});
},
error: function(results) {
//console.log('true', results);
}
});
};
var interval = 1000 * 60 * 10; // Last int is minutes
setInterval(getNewPosts, interval);
所以你可以看到它将新帖子加载到变量instagramPosts中。然后,当我点击.instagram_menu时,它会预先添加这些新帖子。
同样,问题是,如果我让它坐下来多次调用此函数,那么我单击.instagram_menu,它会加载这些函数调用函数的次数。
我该去哪儿?我想指出正确的学习方向,不要只给我代码并称之为一天。感谢
答案 0 :(得分:0)
我会取消绑定点击然后再次绑定。我不确定'一个'会做什么?
setInterval(bang, 1000);
function bang(){
$('#clickme').unbind('click');
$('#clickme').one('click', function(){
alert('bang');
});
}