我有一个加载我的聊天框的iframe,但是当它刷新它闪烁时,我怎么会停止它闪烁。我已经包含了下面的代码,用于刷新Iframe自己。
window.setInterval("reloadIFrame();", 2000);
function reloadIFrame() {
window.frames["chatlogs"].location.reload();
}
提前感谢您的帮助!
答案 0 :(得分:1)
您不仅可以使用AJAX而不是iframe,还可以根据要求使用服务器端推送来查看。要解决的问题是,当服务器上发生事件时,客户端如何更新其内容?聊天是一个典型的例子。您有几种选择,我在下面列出。
最简单的解决方案。每个客户端都会反复询问服务器是否有任何更新,并且最接近您的iframe实现。不利之处在于每个客户端请求的通信开销带来的带宽浪费。
当服务器保持客户端等待更长时间(即5秒),然后在更新发生或超时后返回,以较早者为准。使用Comet,服务器需要进行编码以保持客户端连接打开而不保持任何服务器线程等待(否则服务器将耗尽线程来提供新请求,这将是性能噩梦)。
HTML 5中的新功能,WebSockets支持客户端和服务器之间的双向通信,是服务器端推送的任何通信的推荐技术。
你可以找到good example with WebSockets here,猜猜是什么?碰巧是一个试图实现聊天应用程序的人:)
对于记录,您将能够消除iframe闪烁,而不是保留一个iframe并刷新它,您的JavaScript会创建一个 new 隐藏的iframe,其URL和位置与旧iframe相同,并在加载时使其可见并删除旧的iframe。