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