我正在尝试更新状态页面。
我正在使用Ajax来更新页面。更新设置为每3秒更新一次。但无论何时调用更新,浏览器都会冻结至少一两秒钟。
<script type="text/javascript">
window.onload = updateStatus;
function updateStatus() {
updateinfo();
setTimeout(updateStatus, 3000);
}
function getJson(theUrl, update) {
if (window.XMLHttpRequest) {
xmlhttp = new XMLHttpRequest();
} else {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
update(xmlhttp.responseText);
}
}
xmlhttp.open("GET", theUrl, false);
xmlhttp.send();
}
function updateinfo() {
getJson('backend/status', function(update) {
var jsono = JSON.parse(update);
document.getElementById('name').innerHTML = jsono.name;
document.getElementById('online').innerHTML += jsono.online;
document.getElementById('ip').innerHTML = jsono.ip + ':';
document.getElementById('ip').innerHTML += jsono.port;
document.getElementById('memory').innerHTML = jsono.memory + " MB";
});
}
</script>
如果有人可以给我提示改善这一点。使它不那么迟钝或让它消失。
2)我一直在考虑使用JQuery。我应该搬家吗?优点和缺点?与仅JavaScript相比,JQuery的性能如何明智?
答案 0 :(得分:3)
您正在让AJAX请求同步运行 - 这是您永远不需要的,因为这样可以防止它首先成为AJAX,因为A代表异步。
将xmlhttp.open
来电的第三个参数更改为true
(或者只是将其保留,因为这是默认值。)