我每 10 分钟使用 setinterval 运行一次 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,它会加载这些帖子的函数被调用的次数。
我该去哪里?我想指出正确的学习方向,不要只给我代码就可以了。谢谢