使用javascript或php强制客户端刷新

时间:2012-01-22 01:53:15

标签: php javascript html

我是HTML,PHP,CSS和Javascript的新手。如果这意味着什么,我在C ++中有一些背景知识。为了练习我的网站编程,我决定建立一个简单的聊天室网站。基本上,用户登录该站点,当他们在“聊天室”中输入消息时(通过键入文本字段并单击提交按钮),该消息将被附加到ChatData.txt。然后读取ChatData.txt并显示在iframe中。 iframe仅显示聊天数据,每5秒刷新一次。这都是使用PHP和HTML完成的。

我想知道的是,是否有可能不是每5秒刷新一次iframe,而是强制所有客户端仅在单击提交按钮时刷新iframe?

我在想,不管怎么说,有一种方法可以使用PHP / Javascript向所有浏览器发送刷新。

感谢。

2 个答案:

答案 0 :(得分:1)

技术上的刷新是强制客户端手动请求新数据 - 即使不存在。但是,您尝试做的是让服务器/后端在可用时推送新的更改。

有许多方法可以执行此操作。这是一个很好的起点:How do I implement basic "Long Polling"?

答案 1 :(得分:1)

您可以删除iframe节点并通过javascript动态重建它。

下面是如何通过jQuery实现它的基本方法。你的iFrame周围需要一个包装器(<div id="reload"></div>),其ID为“reload”。

$(document).ready(function() {
   setInterval(function() {
      $("#reload").html('<iframe src="/path/to/script.php"></iframe>');
   },5000);
});

这可能会达到您的目标但不理想,因为它可能会对浏览器造成负担。理想情况下,对脚本进行异步调用并通过javacript创建HTML节点将是更好的选择。然而,为了正确地构建它,这将需要更多的研究/学习。 (由于重新加载,你没有得到闪烁的iframe屏幕)