2010-10-30 1 views
0

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

В разных единицах, ScriptResource.axd в среднем имеет размер передачи ~ 27k.

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

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

Любые идеи? Я потоплен?

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

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

+1

Время и энергия, которые вы собираетесь тратить на эту проблему, - это то, почему я ненавижу невежественные, внешние, негибкие требования, подобные этому. Желаю тебе удачи! –

+0

@ andrew-barber: Я слышал, хотя этот потолок довольно распространен, когда вы начинаете играть в рекламной песочнице, и вам нужно подавать материал в рекламные сети. Объем и количество запросов, создаваемых Asp.NET Ajax, смущают, когда внешние инженеры профилируют вашу полезную нагрузку.:( –

+0

Итак, люди, славящиеся созданием бесполезных рекламных роликов с флэш-видео по всему миру, предлагают людям обрезать полезный, обычно кэшированный контент своего сайта, поэтому их 10 раз больше, как правило, нежелательный (по пользователю) контент будет загружаться быстрее? Ironic ... –

ответ

1

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

1

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

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

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

Смежные вопросы