Вопрос

У меня есть Ajax.Сеть включена ASP.Net веб-сайт 2.0.Хостинг как для сайта, так и для базы данных находится вне моего контроля, как и схема базы данных.При тестировании на оборудовании я контролирую, что сайт работает хорошо, однако на оборудовании клиента наблюдаются заметные задержки при перезагрузке или смене страниц.

Что я хотел бы сделать, так это сделать мое приложение как можно более компактным и быстрым при его доставке.Одна из идей состоит в том, чтобы установить даты истечения срока действия для всех статических ресурсов сайта, чтобы они не вызывались при загрузке страницы.Под ресурсами я подразумеваю изображения, связанные таблицы стилей и исходные файлы JavaScript.Есть ли простой способ сделать это?

Какие еще существуют способы оптимизации веб-сайта .Net?

Обновить:Я запустил YSlow на сайте, и области, в которых я получаю наибольший удар, связаны с количеством загружаемых JavaScript и таблиц стилей (23 JS-файла и 5 таблиц стилей).Все, кроме одного (основная таблица стилей), были вставлены Ajax.net и Asp.Почему так много?

Это было полезно?

Решение

  1. Объединение скриптов в .net 3.5 SP1
  2. Рекомендации по созданию быстрых веб-сайтов
  3. Сжатие HTTP (gzip)
  4. Сжатие JS / CSS (отличается от сжатия http, минимизирует javascript)
    1. Компрессор YUI
    2. .NET YUI Компрессор

Мой лучший совет - ознакомиться с Содержание YUI.У них есть несколько замечательных статей, в которых говорится о таких вещах, как CSS-спрайты и съешь немного хорошие библиотеки javascript, помогающие уменьшить количество запросов браузер создает.

Другие советы

Если вы используете Firefox для тестирования своего веб-сайта, возможно, вам захочется попробовать отличное расширение Firefox от Yahoo!вызванный ИЗлоу.

Он анализирует ваши веб-страницы и выставляет оценки от A доF (A - лучшая, F - худшая) для каждой из лучших практик для высокопроизводительных веб-сайтов.Это поможет вам отследить элементы вашего сайта, которые вы могли бы оптимизировать для ускорения работы.

Отключите viewstate по умолчанию, это будет разница между днем и ночью даже на самых простых страницах.

Я написал запись в блоге об улучшении производительности страницы ASP.NET это было пару месяцев назад.Вот несколько быстрых и простых способов -

  • Отключить режим просмотра
  • Отключить проверку событий
  • Реализуйте сжатие HTTP gzip / deflate, чтобы уменьшить размер ответа (количество байт, которые сервер должен отправить обратно клиенту).
  • Попробуйте оптимизировать / минимизировать вызовы вашей базы данных для каждого запроса

Я думаю, вам действительно нужно иметь возможность получать некоторые фактические данные PerfMon / телеметрию из приложения во время работы в рабочей среде, чтобы иметь возможность принимать взвешенное решение о том, что оптимизировать.

В качестве одноразового совета я бы позаботился о том, чтобы ваше приложение было развернуто как Освободить создайте и установите debug="false" в 'Сборник' раздел вашего web.config.

Похоже, вы начинаете с предположения, что ваша проблема заключается в размере загрузки - это не обязательно так.Вам следует поэкспериментировать с вашим сайтом ASP.NET, чтобы определить, есть ли в вашем коде области, которые вызывают неоправданные задержки.Если окажется, что размер файла не ваша проблема, вы должны найти способы, чтобы кэшировать результаты (посмотреть на кэширование вывода, который представляет собой функцию ASP.NET ) или оптимизации кода.

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

Вы могли бы начать изучать стратегии кэширования.Статические файлы, такие как CSS (даже сжатые) и изображения (даже оптимизированные), должны загружаться браузером только один раз в течение определенного периода времени.

Объединение Scirpt для AJAX уже упоминалось, но я не заметил ссылки на ScriptReferenceProfiler, который MS выпустила в codeplex, чтобы помочь выяснить, что нужно объединить.Майк Ормонд имеет хорошую отправную точку в этом вопросе.

Еще один совет, если вы делаете много вставок в свою базу данных, - дважды проверьте, включено ли кэширование диска на вашем сервере.Например, у меня был импортер данных, делающий 1,2 миллиона вставок во время выполнения.Потребовалось 4 часа, и все изменилось без включения кэширования.На это ушло 16 минут.

Общая вещь при совместном использовании ASP.NET и Ajax (любой библиотеки Ajax) - избегать использования слоновости ваших Page_Load и Page_Init (и их аналогов методов), поскольку они будут выполняться при каждом запросе Ajax.

Когда это будет сказано, я бы серьезно отказался от ASP.NET AJAX и использовал что угодно ещё...

Гимн.NET, AjaxPRO.NET, jQuery или что-то еще, кроме ASP.NET AJAX...

Конечно, я бы использовал Ра-Аякс я сам, поскольку это мой проект.Но опять же, я предвзят...

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

Статические ресурсы не должны повторно использоваться, если они не изменены.IIS отправит код ответа, который сообщает браузеру использовать кэшированную версию.

Вы также можете посмотреть на ASP.NET кэширование выходных данных, которое может быть применено довольно детально к различным частям вашей страницы:

http://msdn.microsoft.com/en-us/library/xsbfdd8c (ПРОТИВ 71).aspx

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top