var Sayxmlhttp = new ActiveXObject("Microsoft.XMLHTTP");

var Saycheckresult=null;

function UserSayOnlineList()

{

Sayxmlhttp.open("GET", "XXX.ASP", true);

Sayxmlhttp.onreadystatechange = SayListPage;

Sayxmlhttp.send();

}

function SayListPage() {

if (Sayxmlhttp.readyState == 4) {

if (Sayxmlhttp.status == 200) {

var Sayresponse = Sayxmlhttp.responseText;

if(Sayresponse==1){

Saycheckresult=1;

}

else{

document.getElementById('ShowHTML').innerHTML=Sayresponse;

}

}

Saycheckresult=0;

}

}

setInterval("UserSayOnlineList();",3000);



由于网页需要循环查询一个页面检查更新情况,所以设置了3000毫秒的定时刷新

但是,偶尔会出现IE假死的情况,原来使用Sayxmlhttp.open("Post","XXX.ASP",false)的时候,经常出现这样的情况,所以初步估计是由于AJAX的问题!

出现假死的时候我也ping了一下服务器,发现一般情况下,出现IE假死的时候就是服务器掉包的时候

那请问各位大大怎么样解决这样的问题呢???

---------------------------------------------------------------------------------------

还有就是当这个页面打开之后,长时间不对IE进行操作,突然再使用浏览器的时候发现CPU已经跑到了60~70%

我的电脑是酷睿双核的,所以一般电脑应该会更高,那是不是因为频繁刷新导致出现了CPU跑这么高呢???

应该怎么解决??

---------------------------------------------------------------------------------------

PS:在这些情况下,IE浏览器窗体还会出现另外一种比较诡异的情况,就是整个页面背景消失不见,或者说部分层的背景被消失不见或移位~~~!!

 

===================================================================================

 

setInterval在IE中较耗资源你找firefox看一下应该会没有问题,

建议用setTimeout,要好许多

====================================================================================

由于网页需要循环查询一个页面检查更新情况,所以设置了3000毫秒的定时刷新 


这种自动刷新的,所消耗资源跟时间增长而增长的,时间一长,消耗的资源就非常多了。

====================================================================================

设置一个变量来保存服务器是否返回,第一次默认为true.


在每次检查更新之前先检查该变量是否为true,如果是true则设置该变量为false,并执行检查,返回后设置为true,这样可以直到服务器返回后再去检测,避免不停的去检测.

====================================================================================