我有一个php脚本,监视我的一个网络设备,并在屏幕上显示各种基本统计数据。这工作正常,我不需要改变它的内容。重新加载页面Div
我目前已经配置了这个脚本,所以它每5秒钟重新加载一次以提供近乎实时的更新。
我想改变它,所以这个页面被加载到一个DIV,只有DIV被刷新。 我已经成功使用JQuery并使用我在网上找到的Ajax DIV刷新脚本。
我遇到的问题是与正常页面刷新相比,此方法使用的资源量。
加载平均值大约3%CPU使用率后的基本脚本。 约22%的JQuery版本和约16%的Ajax版本。
有什么方法可以将页面重新加载到DIV中,该DIV不会使用更多的资源。 ?
我使用的jQuery是:
$("#new_stats").load('stats.php');
}, 3000);
Ajax的脚本是:
var seconds = 5;
var divid = "new_stats";
var url = "stats.php";
////////////////////////////////
//
// Refreshing the DIV
//
////////////////////////////////
function refreshdiv(){
// The XMLHttpRequest object
var xmlHttp;
try{
xmlHttp=new XMLHttpRequest(); // Firefox, Opera 8.0+, Safari
}
catch (e){
try{
xmlHttp=new ActiveXObject("Msxml2.XMLHTTP"); // Internet Explorer
}
catch (e){
try{
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
}
catch (e){
alert("Your browser does not support AJAX.");
return false;
}
}
}
// Timestamp for preventing IE caching the GET request
fetch_unix_timestamp = function()
{
return parseInt(new Date().getTime().toString().substring(0, 10))
}
var timestamp = fetch_unix_timestamp();
var nocacheurl = url+"?t="+timestamp;
// The code...
xmlHttp.onreadystatechange=function(){
if(xmlHttp.readyState==4){
document.getElementById(divid).innerHTML=xmlHttp.responseText;
setTimeout('refreshdiv()',seconds*1000);
}
}
xmlHttp.open("GET",nocacheurl,true);
xmlHttp.send(null);
}
// Start the refreshing process
window.onload = function startrefresh(){
setTimeout('refreshdiv()',seconds*1000);
}
谢谢:)
UPDATE 这是我使用jQuery。
$(document).ready(function() {
$("#new_stats").load("stats.php");
var refreshId = setInterval(function() {
$("#new_stats").load('stats.php');
}, 5000);
$.ajaxSetup({ cache: false });
});
对不起,上次只发布了一部分。
任何人都知道另一种方式与出消耗额外的资源来做到这一点? – MacMan