0

我正在开发一个聊天室类型的东西,用户输入文本并按回车键,然后它会被发布到主页。我用 PHP 构建了它。我有一个工作模型,但是要查看新帖子,您必须单击浏览器中的刷新按钮。有没有办法在 JavaScript 中自动刷新它?我确定有,但似乎如果它每两秒刷新一次,它会非常缓慢且资源密集。那么有解决方法吗?如果不是很好,我猜我们可以每隔几秒钟刷新一次。

我现在是高级 JavaScript 用户,所以请评论您的代码并解释我需要更改的内容。太感谢了!!

哦,PS,所有评论都保存在MySQL数据库中,并通过PHP自动生成。

4

1 回答 1

1

是的,您可以每 X 秒刷新一次窗口,但正如您所提到的,在这种情况下无需重新加载整个页面。正如您所说,所有新的文本评论都在 sql 中,您可以做的是使用 AJAX 调用 php 函数在屏幕上实时更新它们,而无需重新加载页面。

setTimeout("updateChatAJAx()",2000);

此 javascript 行将每 2 秒调用一次“updatechatAJAx”javascript 函数。

    //Load the message View
    function updateChatAJAx(){
        var ajaxRequest;  // The variable that makes Ajax possible!
        ajaxRequest = new XMLHttpRequest();
        // Create a function that will receive data sent from the server
        ajaxRequest.onreadystatechange = function(){
                if(ajaxRequest.readyState == 4){
                        //The response
                        document.getElementById('MoreID').innerHTML = ajaxRequest.responseText;
                }
        }
        ajaxRequest.open("GET", "getMessages.php", true);
        ajaxRequest.send(null);
}

上面的这个函数将是 ajax 函数,它将调用 getMessages.php 的输出 pf 并将消息放入“MoreID”div 元素

于 2012-10-21T22:21:13.827 回答