2014-01-15 298 views
1

我有一个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 }); 
}); 

对不起,上次只发布了一部分。

+0

任何人都知道另一种方式与出消耗额外的资源来做到这一点? – MacMan

回答

1

您需要设置的时间间隔:

$(document).ready(function() { 
    $("#new_stats").load("stats.php"); 

    setInterval(function() { 
     $("#new_stats").load('stats.php'); 
    }, 3000); 
}); 
+0

原始帖子更新了我正在使用的实际JQuery。 Thx – MacMan

+0

@MacMan更新了我的答案。此代码将每3秒刷新一次'stats.php'文件。如果这不起作用,那么请说明您在控制台中遇到的错误或您在PHP中遇到的错误。 – Enijar

+0

谢谢你的工作。但我仍然看到更高的CPU使用率,然后刷新页面。 – MacMan

相关问题