Ajax 请求仪表板页面上的浏览器崩溃
Ajax requests crashing browser on dashboard page
我有一个仪表板页面,用于检查更新的 json 响应是否显示在页面上。页面和站点的其余部分与显示它的浏览器托管在同一台计算机上。它旨在保留在该页面上,并连续保留在该页面上。它由两部分组成,一个javascript/jquery提取器,它调用一个PHP页面,如果内容发生了变化,则读取返回"有效负载"值的数据库,如果没有,则只返回检查的最后一个时间戳。它目前可以拉动笔记,因为它们会发生变化,但是它有问题
确定问题:
1:在 chrome 控制台中,每次加载页面时都会收到此消息:
主线程上的同步 XMLHttpRequest 已被弃用,因为它会对最终用户的体验产生不利影响。如需更多帮助,请查看 http://xhr.spec.whatwg.org/。
2:我注意到将其添加到页面后浏览器使用的RAM量大幅增加。大约 4 小时后,浏览器崩溃。
JS代码:
var lastcheck;
var content_main = $('#notes');
$(document).ready(function() {
$.ajaxSetup({ cache: false });
setInterval(function() {
updateJson();
}, 5000);
});
function updateJson() {
var request = '/sections/noteboard/notes.php?new=1×tamp='+ (lastcheck ? lastcheck : 0);
$.ajax({
url: request,
dataType: 'json',
async: false,
cache: false,
success: function(result) {
if (result.payload) { // new data
lastcheck = result.time; // update stored timestamp
content_main.html(result.payload); // update html element
} else { // no new data, update only timestamp
lastcheck = result.time;
}
}
});
}
PHP代码:
$timestamp = 0;
$where = '';
if (isset($_GET['timestamp'])) {
$timestamp = $_GET['timestamp'];
}
if ($timestamp) {
$where = ' WHERE timing >= '.$timestamp;
}
$result = $mysqli->query("SELECT * FROM `mirror_notes` ". $where ." ORDER BY `id` DESC LIMIT 0,1");
$row_cnt = $result->num_rows;
$output = array();
$myrow = $result->fetch_array(MYSQLI_ASSOC);
if ($row_cnt=='1' && $myrow['message'] !== '') { // do we have any script output ?
$output['payload'] = stripslashes($myrow['message']); // your current script output would go in this variable
}
$output['time'] = time(); // so we know when did we last check for payload update
$json = json_encode($output, ((int)JSON_NUMERIC_CHECK)); // jsonify the array
echo $json; // send it to the client
$result->close();
$mysqli->close();
exit();
非常感谢任何帮助,因为我是jquery的初学者,并且只是对php稍微好一点。谢谢
我认为
没有人会让浏览器打开这么长时间崩溃。
一个简单的解决方案是使用套接字。使用 php 打开套接字并开始与浏览器通信并不难。你应该研究一下。
相关文章:
- 为什么这会造成一个无休止的循环并使我的浏览器崩溃
- javascript audio currentTime使一些浏览器崩溃
- 在浏览器崩溃之前检测到内存耗尽
- 输入输入前浏览器崩溃
- three.js内存泄漏/浏览器崩溃
- Ajax 请求仪表板页面上的浏览器崩溃
- set超时在“while”内会导致浏览器崩溃.我怎样才能避免它
- 设置设置间隔函数正在运行并导致浏览器崩溃
- 高效的Javascript组合函数,不会使浏览器崩溃
- 我的脚本使浏览器崩溃
- SlickGrid在选择大范围的行时使浏览器崩溃
- setInterval 在运行用户脚本时使我的浏览器崩溃
- 添加依赖项后浏览器崩溃
- Javascript/Jquery代码使我的浏览器崩溃
- 无限滚动会导致浏览器崩溃吗?
- 为什么这 while 循环会使浏览器崩溃
- 设置间隔导致浏览器崩溃
- JavaScript函数使我的浏览器崩溃
- 旧的JavaScript函数使浏览器崩溃
- 如何使用 IndexedDB 制作一个很长的字符串而不会使浏览器崩溃