PHP - 收到新消息时更新 iFrame

PHP - Update iFrame When A New Message is Recieved

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

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

如果您可以发送 php 条消息,其中 returns 所有消息都是在特定时间段后创建的,则可以使用 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)。

谢谢大家!这是我所做的(我从 http://code.tutsplus.com/tutorials/how-to-create-a-simple-web-based-chat-application--net-5931 那里借来的,由 chris85 建议:

<script>setInterval(function(){document.getElementById("messages").src += "";}, 2000);</script>