首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > Ajax >

频繁刷新和内存有关问题XMLHttpRequest与jquery.ajax

2012-02-26 
频繁刷新和内存问题XMLHttpRequest与jquery.ajax - Web 开发 / Ajax最近有个项目需要在页面上实时显示数据

频繁刷新和内存问题XMLHttpRequest与jquery.ajax - Web 开发 / Ajax
最近有个项目需要在页面上实时显示数据库中的内容(客户要求刷新频率1秒),先用jaquery.ajax试了一下,内存会随着刷新将次数的增长而增长,网上查了一下,很多人说是循环中的jquery.ajax不断创建新的XMLHttpRequest对象所致,于是自己又写了一个自己创建XMLHttpRequest对象处理请求的页面,发现web浏览器的内存还是不断增长中(ie6和ie8及firefox3.6.12),还望各位给看一下问题到底是出在什么地方?

/////////////////////////jaquery.ajax测试///////////////////////////////////////////

HTML code
<html xmlns="http://www.w3.org/1999/xhtml" ><head>    <title>Untitled Page</title>    <script type="text/javascript" src="jquery-1.6.2.js"></script>    <script type='text/javascript'>    var nCount = 1;    function chlink()     {         var strUrl = "GetStatus.ashx?Count="+nCount++;         $.ajax({            url: strUrl,            type: "get",            dataType: 'text',            cache: false,            success: function (data)            {                if( "Error"==data )                {                    $("#date").html("Server status is error" );                }                else                {                    $("#date").html("Serever status is normal" );                }                                data = null;            }            });        strUrl = null;                setTimeout('chlink()',100);    }    $(document).ready(function()    {        chlink();    });    </script></head><body>    <div id="date"></div></body></html>



////////////////////////XMLHttpRequest的测试//////////////////////////////////
HTML code
<html xmlns="http://www.w3.org/1999/xhtml" ><head>    <title>Untitled Page</title>    <script type="text/javascript" src="jquery-1.6.2.js"></script>    <script type='text/javascript'>    var nCount = 1;    var req=null;    var READY_STATE_UNINITIALIZED=0;    var READY_STATE_LOADING=1;    var READY_STATE_LOADED=2;    var READY_STATE_INTERACTIVE=3;    var READY_STATE_COMPLETE=4;        function loadXMLDoc(url)     {        if( !req )        {            alert(url);            if (window.XMLHttpRequest)             {                req = new XMLHttpRequest();            }             else if (window.ActiveXObject)             {                req = new ActiveXObject("Microsoft.XMLHTTP");            }            if (req)             {                req.onreadystatechange = processReqChange;            }        }        //        if (req) {            //alert(url);            req.open("GET", url, true);            req.send(null);        }    }    function processReqChange()    {      var ready=req.readyState;      var data=null;      if (ready==READY_STATE_COMPLETE)      {        data = req.responseText;        //alert(data);        if( "Error"==data )        {            $("#ComputerDevice1").html("Server status is error" );        }        else        {            $("#ComputerDevice1").html("Serever status is normal" );        }        data = null;        //req = null;                setTimeout('GetContent()',1);      }      else      {        $("#date").html("NO"+nCount+" loading...["+ready+"]" );      }            }        function GetContent()    {        loadXMLDoc("GetStatus.ashx?Count="+(nCount++));    }       $(document).ready(function()    {        GetContent();    });    </script></head><body>    <div id="ComputerDevice1" class="DeviceNormal"><!-- onclick="changecss()">-->    </div>    <div id="date"></div></body></html> 



[解决办法]
setTimeout('GetContent()',1);
把这个的返回值记录一下,成功后clear一下试试
[解决办法]
调用一下试试clearTimeout
[解决办法]
ff3测试还好啊,刚开始涨,涨到140m左右就稳定了。O(∩_∩)O~

你的请求太频繁了,1ms,建议改用flash的sokect来实现。
[解决办法]
这请求也太太太频繁了吧~~1s刷一次 前段够受的了~~

[解决办法]
这实时性要求的确实又点高。
是证券交易类的系统吗?

热点排行