Ajax站点性能问题(IE)

时间:2011-05-25 16:19:16

标签: c# asp.net ajax performance internet-explorer

我面临与在IE中运行ajax相关的性能问题(我使用的是Ie8),问题是我的网站运行速度非常慢,但它在chrome中运行良好,我的意思是使用SLOW =>慢动作 。我使用div和表并使用javascript将html渲染为div,除此之外我使用ajax调用5个不同的页面(处理程序)

    function ReceiveServerData(rValue)
    {


        var x = GetHash();
        var feeds = JSON.parse(rValue);
        var sb = new StringBuilderEx();
        var length = feeds.length;
        for(var i=0; i<length-1; i++)
            sb.append(News(feeds[i].Id, feeds[i].Title, feeds[i].Des, feeds[i].Icon, i));
        if(i == 0)
            {
                $('#News').html("");
                $('#head').html("<i><b><center>لا يوجد اي مقالات حاليا</center></b></i>");
                return;
            }

        $('#News').html(sb.toString());
        $('#Pages').html("");
        if(feeds[i].count == 1)
        {
            $('#head').html("");
            return;
        }
        for(var a = 1; a <= feeds[i].count; a++)
        {

        if('#'+a == x || a == x)
            $('#Pages').append("<button id=b" + a + " class='bt2' type='button'><span class='yt-uix-button-content'>"+ a +" &nbsp;</span></button> "); 
            else
                $('#Pages').append("<button id =" + a + " Onclick=javascript:ChangeHash(" + a + ") class='bt' type='button'>"+ a +"</button> "); 
        $('#head').html("<i><b><center>The page has been loaded.</center></b></i>");
    }
        scroll(0,0);
    }
        function News(id, title, des, icon, i)
    {
        var type = "";
        if(i == 0)
            type = "&p=big"; 
        return "<table style=width:100%;>" + 
        "<tr><td rowspan=2 style=width:10%;><img width=70 hieght=70 src="+ icon +">" +
        "</td><td align=right style=width:90%;background:url(./Images/BabrBackground.gif)>" +
        "&nbsp;<font size=3><a href=Read.aspx?id="+ id +">&nbsp; "+ title +"</a></font></td></tr><tr>"+
        "<td valign=top align=right>&nbsp;&nbsp;<i><font color=#5C5858>"+ des +"</font></i></td></tr></table>";
    }

3 个答案:

答案 0 :(得分:1)

IE的javascript引擎往往比Chrome运行速度慢,而且从它的外观看,你的循环可能使它比它想象的更难工作。 不知道你的项目或你想要完成的任何事情,为什么你不只是在服务器上渲染你的html并将其发回给客户端,而不是让所有的javascript为你构建html?

答案 1 :(得分:0)

我没有直接回答你的问题。但是您可以使用dynaTrace精确定位导致问题的确切代码行。有关详情,请访问http://ejohn.org/blog/deep-tracing-of-internet-explorer/

答案 2 :(得分:0)

我会考虑优化html生成 - 你检查过jTemplates吗?

我目前使用jTemplates从ajax返回的JSON数据创建内容,该数据被插入到页面上的div中 - 尽管生成了大量的html内容,但我对性能没有任何问题 - 我很怀疑因为jTemplates是高度优化的。