我的网站上的聊天系统有问题。它不断在控制台中发送XHR Finished加载。我知道我可以在chrome中禁用它,但使用该站点的其他用户不需要经历该过程。它会像你在setinterval中看到的那样每隔一秒发送一条消息,我希望它只在数据库中的某些内容被添加/删除/更改时发送它
我在这里链接我的js:
function ajax() {
var req = new XMLHttpRequest();
req.onreadystatechange = function() {
if(req.readyState == 4 && req.status == 200) {
document.getElementById('chatbox').innerHTML = req.responseText;
}
}
req.open('GET', 'includes/chatbox.php', true);
req.send();
}
setInterval(function(){ajax()},1000);
这应该是唯一需要编辑的内容,但如果您需要查看php代码或HTML代码,请告诉我。
答案 0 :(得分:1)
更新:Interwebs建议人们看到XHR Finished loading
只是您和那些正在记录ajax请求的人。取消选中控制台上下文菜单中的Log XMLHttpRequests
。 See here。别担心;它不会影响用户的用户体验默认情况下禁用ajax请求的日志记录,因此99%的用户无法实际登录,默认情况下隐藏控制台而且即使在20世纪90年代的奔腾机器上,console.log
的成本也是微不足道的。
即使你不同意,实际上你所能做的就是担心;如果Facebook无法阻止这些日志显示,你也不能:)你很好。
不确定你的意思,但试试这个;也许它会让你的问题更加明显,你可以提出更好的要求:
<强> server.php 强>
<?php
header("Access-Control-Allow-Origin: *");
echo "hi!";
<强> client.html 强>
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<div id='chatbox'></div>
<script>
function ajax() {
var req = new XMLHttpRequest();
req.onreadystatechange = function() {
if(req.readyState == 4 && req.status == 200) {
document.getElementById('chatbox').innerHTML = req.responseText;
}
}
req.open('GET', 'http://localhost:1234/', true);
req.send();
}
setInterval(function(){ajax()},1000);
</script>
</body>
</html>
使用
运行服务器php -S localhost:1234 server.php
在您的浏览器上打开client.html,看看您的问题是否仍然存在。
一些想法: