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

使用javascript或php强制客户端刷新,php,javascript,html,Php,Javascript,Html,我对HTML、PHP、CSS和Javascript相当陌生。我确实有一点C++背景,如果这意味着什么的话。为了练习我的网站编程,我决定制作一个带有简单聊天室的网站。基本上,用户登录到该站点,当他们在“聊天室”中输入消息时(通过在文本字段中键入并单击“提交”按钮),消息将显示在ChatData.txt中。然后读取ChatData.txt并在iframe中显示。iframe仅显示聊天数据,每5秒刷新一次。这一切都是使用PHP和HTML完成的 我想知道的是,有没有可能不每隔5秒刷新一次iframe,而

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

我想知道的是,有没有可能不每隔5秒刷新一次iframe,而只在单击submit按钮时强制所有客户端刷新iframe

我在想,不知何故,有一种方法可以使用PHP/Javascript向所有浏览器发送刷新


谢谢。

从技术上讲,刷新所做的就是强制客户端手动请求新数据,即使不存在新数据。然而,您试图做的是让您的服务器/后端在新更改可用时推送它们


有许多方法可以执行此操作。这里是一个很好的起点:

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

下面是如何通过jQuery实现的基本方法。在iFrame周围需要一个名为“reload”的包装器(

$(文档).ready(函数(){
setInterval(函数(){
$(“#重新加载”).html(“”);
},5000);
});
这可能会实现您的目标,但并不理想,因为这可能会给您的浏览器带来负担。理想情况下,对脚本进行异步调用并通过JavaScript创建HTML节点是更好的方法。然而,这将需要更多的研究/学习,以便正确地构建它。(由于重新加载,您不会看到闪烁的iframe屏幕)

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