我正在建立聊天。我有这个Jquery工作代码,它每秒调用logs.php并刷新聊天。
$(document).ready(
function(e) {
$.ajaxSetup({cache:false});
setInterval(function() {
$('#chatlogs').load('logs.php');
updateScroll();
}, 1000);
}
);
正如您所看到的,我的页面上的JS函数updateScroll
也会被调用。 Updatescroll
创建了一个变量,我想将其传递给logs.php
,有没有办法做到这一点?换句话说,如果用户已经滚动到聊天的顶部,updatescroll
基本上每隔一秒检查一次。如果是这样,我会告诉logs.php
加载-say - 另外10条消息。但是为了做到这一点,我必须从updatescroll
传递给Jquery函数,然后传递到logs.php
。你懂了?感谢
答案 0 :(得分:1)
首先,当谈到ajax时,我建议使用class Pod
has_one :pod_admin
has_many :parents
end
class PodAdmin
belongs_to :pod
end
,当您异步运行时,间隔可能会变得棘手(如果一个调用挂起,最终可能会多次调用同一个脚本)。
更像是:
window.setTimeout
然后在你的PHP脚本中"计数"将通过(function($){
var update_messages = function(){
var count = updateScroll();
$('#chatlogs').load('logs.php?count='+count, function(){
window.setTimeout(update_messages, 1000);
});
}
$(document).ready(function(){
$.ajaxSetup({cache:false});
update_messages();
});
})(jQuery);
提供。
编辑:您可以看到正在发送一个匿名函数作为加载的第二个参数,这将在AJAX调用完成后调用,因此我们可以确保一次只运行其中一个