2015-12-22 43 views
-2

我是一个在PHP的新手。我制作了一个消息系统,但您必须手动更新带有消息的iFrame。如何在收到新消息时更新此iFrame?PHP - 当收到新消息时更新iFrame

+2

为什么不使用AJAX来获取新邮件 – chris85

+0

我不是很熟悉AJAX我怎么能做到这一点? – jadenPete

+0

无限循环到服务器端...我希望你有一个很好的托管软件包。如果你想从服务器请求中删除很多压力,你可能需要考虑使用web套接字,因为这将提出一个请求一旦对数据库进行了更改,它将会回复,而不是每隔几秒钟请求所有数据。 – NewToJS

回答

1

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

如果您可以创建一个PHP消息,该消息返回在特定时间段后创建的所有消息,则可以使用javascript发送请求。

如果您在客户端上使用jQuery,它会是这个样子(检查http://api.jquery.com/jquery.ajax/更多细节):

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 

它也可以使用普通的JavaScript,但代码将是一个有点不同。

如果你已经控制了服务器,还有其他的消息选项,使用websockets,它保持连接打开并来回传递消息(http://www.websocket.org/echo.html)。