我创建了 3 页mainpage.php
- , post.php
, display.php
.
mainpage 有一个带有 div id 'chatbox' 的主聊天界面,以及一个带有提交按钮的 textarea。单击提交按钮后,使用 jQuery 调用post.php
并将用户的消息输入数据库。这没有问题。
然后我使用 jQuery ajax 方法(见下文)调用display.php
并将返回的内容放入聊天框 div。这是代码:
function loadLog(){
if(counter>1)
delaytime=2500;
counter++;
var oldscrollHeight = $("#chatbox").attr("scrollHeight") - 20;
var id=$("#ID").val();
var _url='display.php?Id='+id;
$.ajax({
url:_url,
cache: false,
success: function(html){
$("#chatbox").html(html); //Insert chat from DB into the #chatbox div
var newscrollHeight = $("#chatbox").attr("scrollHeight") - 20;
if(newscrollHeight > oldscrollHeight){
$("#chatbox").animate({ scrollTop: newscrollHeight }, 'normal');
}
},
});
}
注意:这是一个每隔 2500 毫秒调用一次的函数——
setInterval (loadLog, delaytime);
这也很好。
现在,在 中display.php
,我使用了
echo PIPHP_ReplaceSmileys($chatdisp['Msg'], 'smileys/');
在聊天中显示笑脸。代码在这里: http: //pluginphp.com/plug-in59.php
我的问题:由于我们display.php
每 2500 毫秒刷新一次,因此表情符号每次显示时都会闪烁。文本不会发生这种情况,因为文本很快,而图像需要时间加载。这不太理想。有没有办法防止这种闪烁?