Как составлять и сжимать Javascripts (.net ajax), чтобы получить лучшую производительность - PullRequest
2 голосов
/ 22 февраля 2011

Я использую библиотеку JQuery и некоторые настраиваемые скрипты JavaScript в своем веб-приложении. Я объединил и сжал их в один файл JavaScript и поместил его в конец тела в виде статического скрипта, который обычно может добиться максимальной производительности, согласитесь?

<script src="../js/Default.js" type="text/javascript"></script>

Кроме того, на некоторых страницах применяются элементы управления .net ajax, например, <ajax:calendarExtender>. Некоторые статьи, http://am -blog.no-ip.org / BlogEngine / post / 2010/04/12 / Повышение производительности AJAX-комбинированием-Scripts-using-Scriptmanager-Composite-Scripts.aspx предлагают использовать <asp:CompositeScript> для компоновки asp.net по умолчанию JavaScripts, которые требуются для этих элементов управления, например <ajax:calendarExtender>

Поскольку в моем веб-приложении есть только один ScriptManager , который находится на главной странице в начале формы . Каков наилучший способ для компоновки и сжатия этих .net JS, чтобы использование было похоже на мой статический скрипт? Поскольку эти элементы управления ajax не применяются на каждой странице, должен ли я по-прежнему объединять все JavasSripts на главной странице? (угадайте, что ссылочный прокси на каждой дочерней странице не поможет?)

С уважением,

Ответы [ 2 ]

0 голосов
/ 22 февраля 2011

Запутывание сократит размер скрипта (иногда резко).ИМО, то есть все , для которого полезно запутывание.

0 голосов
/ 22 февраля 2011

Я думаю, что вам не нужно больше сжимать эти файлы, кроме gZip.

Конечно, вы должны быть обеспокоены тем, что ваши js-файлы на веб-ресурсе не являются отладочными версиями.

Если вы попытаетесь изменить расположение этих файлов, например, попытаетесь поместить их в конец, то, возможно, вы получите ошибки javascript, потому что эти функции, вероятно, должны быть найдены элементами управления asp.net

Я только предлагаю добавить некоторый кеш на стороне клиента . Вы можете сделать это по запросу на начало заявки - что-то вроде:

protected void Application_BeginRequest(Object sender, EventArgs e)
{
    // get the file name
    string cTheFile = HttpContext.Current.Request.Path;

    // here just see if this is the files that you wish to add some extra cache
    if (cTheFile.EndsWith("WebResource.axd", StringComparison.InvariantCultureIgnoreCase))
    {
        // add some cache - what ever you think, or add an eTag 
        app.Response.Cache.SetExpires(DateTime.UtcNow.AddHours(4));
        app.Response.Cache.SetMaxAge(new TimeSpan(4, 0, 0));
        app.Response.Cache.SetCacheability(HttpCacheability.Public);    
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...