Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript PHP-收到新消息时更新iFrame_Javascript_Php_Html_Iframe_Instant Messaging - Fatal编程技术网

Javascript PHP-收到新消息时更新iFrame

Javascript PHP-收到新消息时更新iFrame,javascript,php,html,iframe,instant-messaging,Javascript,Php,Html,Iframe,Instant Messaging,我是PHP的新手。我制作了一个消息传递系统,但是您必须用消息手动更新iFrame。当收到新消息时,如何进行此iFrame更新?如果希望在页面加载后定期轮询服务器,则需要使用javascript定期向服务器发送请求,而无需重新加载页面(这就是AJAX的用途) 如果可以创建一个php消息,返回在特定时间段后创建的所有消息,那么可以使用javascript发送请求 如果您在客户机上使用jQuery,它将如下所示(查看更多详细信息): var timestamp=Date.now(); setInter

我是PHP的新手。我制作了一个消息传递系统,但是您必须用消息手动更新iFrame。当收到新消息时,如何进行此iFrame更新?

如果希望在页面加载后定期轮询服务器,则需要使用javascript定期向服务器发送请求,而无需重新加载页面(这就是AJAX的用途)

如果可以创建一个php消息,返回在特定时间段后创建的所有消息,那么可以使用javascript发送请求

如果您在客户机上使用jQuery,它将如下所示(查看更多详细信息):

var timestamp=Date.now();
setInterval(函数(){
$.ajax(“/newmessage?timestamp=“+timestamp{
成功:功能(数据){
//对这里的新消息做一些处理
$(“#消息”).append(“+data.message+”);
}
});
}, 10000);
//每10000毫秒运行一次
也可以使用普通javascript,但代码会有点不同


如果您已经控制了服务器,那么还有其他的消息传递选项,使用WebSocket,它可以保持连接打开并来回传递消息()。

谢谢大家!下面是我所做的(我借用了它,由chris85建议:


setInterval(function(){document.getElementById(“messages”).src+=“”;},2000)
为什么不使用AJAX来获取新消息?我对AJAX不太熟悉。我该怎么做?无限循环到服务器端…我希望你有一个好的托管包。如果你想从服务器请求中消除很多压力,你可能需要考虑使用web套接字,因为这将发出一个请求,并且一旦更改了数据库ase将每隔这么多秒回复而不是请求所有数据。使用AJAX,您可以从当前窗口向PHP(或其他服务器端语言)发出请求脚本并获取响应。您可以在设置的时间间隔内执行此操作,并使用它返回的新消息更新DOM。这里有一个未经测试的示例,是的,我有一个免费的托管包xD可能想放弃无限循环的想法。。。。
var timestamp = Date.now();
setInterval(function() {
  $.ajax("/newmessage?timestamp=" + timestamp, {
    success: function(data) {
      //Do something with the new messages here
      $("#messages").append("<div id='message'>" + data.message + "</div>";
    }
  });
}, 10000);
// Runs interval every 10000 milliseconds