Проблема производительности сайта Ajax (IE) - PullRequest
0 голосов
/ 25 мая 2011

Я сталкиваюсь с проблемой производительности, связанной с запуском AJAX в IE (я использую Ie8), проблема в том, что мой сайт работает очень медленно, т.е. работает нормально в Chrome, и я имею в виду, используя SLOW => slow motion,Я использую div и таблицы и рендеринг html для div с использованием javascript, кроме того, я использую 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 ]

1 голос
/ 25 мая 2011

движок JavaScript в IE обычно работает медленнее, чем Chrome, и, судя по всему, ваш цикл, вероятно, заставляет его работать тяжелее, чем предполагалось.Ничего не зная о вашем проекте или о том, что вы пытаетесь достичь, почему бы вам просто не рендерить свой html на сервере и не отправлять его обратно клиенту, вместо того, чтобы весь этот javascript создавал html для вас?

0 голосов
/ 25 мая 2011

Я бы посмотрел на оптимизацию генерации html - вы проверили jTemplates?

В настоящее время я использую jTemplates для создания контента из возвращенных ajax данных JSON, которые вставляются в div на странице - у меня нет проблем с производительностью, несмотря на создание значительного количества html-содержимого - в основном я подозреваю, потому что jTemplates высоко оптимизированы.

0 голосов
/ 25 мая 2011

У меня нет прямого ответа на ваш вопрос. Но вы можете использовать dynaTrace, чтобы точно определить строку кода, которая вызывает проблему. Для получения дополнительной информации - http://ejohn.org/blog/deep-tracing-of-internet-explorer/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...