我正在处理聊天室类型的事情,用户输入文本并按Enter键,然后将其发布到主页面。我用PHP构建它。我有一个工作模型,但要查看新帖子,您必须单击浏览器中的刷新按钮。有没有办法在JavaScript中自动刷新?我确信有,但似乎每两秒刷新一次,而不是非常缓慢和资源密集。那还有解决方法吗?如果不是很好,我猜我们可以每隔几秒就进行一次刷新。
我现在是一名高级JavaScript用户,因此请评论您的代码并说明我需要更改的内容。万分感谢!!
哦,PS,所有评论都保存在MySQL数据库中,并通过PHP自动生成。
答案 0 :(得分: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获取输出并将消息放入“MoreID”div元素