Радикальные методы для уменьшения ScriptResource.axd?(и, возможно, WebResource.axd) - PullRequest
0 голосов
/ 30 октября 2010

Сценарий : у меня есть сложное приложение Asp.net, обслуживающее различные модули с помощью программно созданных наборов элементов управления в модулях HttpModules. Некоторые из этих элементов управления используют Asp.NET Ajax.

В разных единицах ScriptResource.axd имеет средний размер передачи ~ 27 КБ.

У меня есть потолок, который позволяет только ~ 3k.

Определенно нет времени модернизировать все функциональные возможности Ajax с помощью jQuery или функций js, созданных вручную, или еще чего-нибудь. У нас уже есть .axd с кодировкой gzip (без сжатия это больше похоже на 97k). Он часто кешируется, но это не имеет значения: мне нужно преодолеть жесткое, низкое внешнее ограничение общего объема передачи первого запроса ... разметка, сценарии, изображения и все в целом - а-ля firebug. Я избегаю .axds, но на самом деле больше нигде не могу побрить байты, и у меня есть 24k, чтобы уйти.

Есть идеи? Я потонул?

Возможные подходы : я еще не использую функциональность compositescript в Asp.NET 3.5 SP1 *, но я полагаю, что это сэкономит только на заголовках запроса / ответа, и я даже не уверен, что количество заголовков против меня.

У меня нет других идей, кроме чего-то радикального, например, создание фильтра ответов, который использует отражение и некоторые словари, чтобы выяснить, какие js-функции на самом деле необходимы , и только генерировать их. Я мог бы кэшировать результирующий список для каждого модуля, так как у меня также низкий потолок времени отклика, и я не думаю, что .axds меняются от одного запроса к другому. Это возможно? Есть еще идеи? ... что если я куплю пиво для героя с решением?

Ответы [ 2 ]

1 голос
/ 30 октября 2010

Я полностью второй комментарий Эндрю. Есть две вещи, которые вы должны сделать с точки зрения конфигурации.

Gzip (что вы уже сделали) Script Mode = Release (который избавит от пробелов).

Кроме этого, есть еще один вариант ... и вовсе НЕ использовать Microsoft AJAX Library. Вы можете написать свою собственную библиотеку для Ajaxification и использовать только то, что вам нужно. Вопрос, который все еще остается, состоит в том ... стоит ли боль? Если это так, пойти на это. Имейте в виду, что большая часть написания вашей собственной библиотеки не так трудна для написания. Настоящая головная боль состоит в том, чтобы сохранить то, что вы пишете, протестировать его на всех доступных платформах и исправить ошибки ... повторно протестировать ... и так далее ... вы поняли!

1 голос
/ 30 октября 2010

Отражение, возможно, хорошая идея.Кроме того, ищите детали, которые редко используются, и найдите другой способ обойти это или работать без этой функциональности.Кроме того, сожмите Ajax-скрипты как можно больше ( YUI Compressor хорошо работает для JavaScript).

...