Сведения о вопросе

Oleksandr

07:35, 4th August, 2020

Теги

Ускорение работы веб-сайта или приложения ASP.Net

Просмотров: 499   Ответов: 12

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

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

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

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



  Сведения об ответе

prince

01:30, 15th August, 2020

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

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


  Сведения об ответе

PIRLO

11:39, 12th August, 2020

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

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


  Сведения об ответе

nYU

08:28, 17th August, 2020

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


  Сведения об ответе

prince

16:39, 26th August, 2020

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

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


  Сведения об ответе

SKY

16:04, 1st August, 2020

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

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


  Сведения об ответе

darknet

05:14, 6th August, 2020

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

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


  Сведения об ответе

VCe znayu

13:30, 8th August, 2020

  Сведения об ответе

Chhiki

13:44, 8th August, 2020

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

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

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


  Сведения об ответе

PROGA

13:49, 28th August, 2020

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

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

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

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


  Сведения об ответе

appple

16:19, 11th August, 2020

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


  Сведения об ответе

JUST___

03:35, 25th August, 2020

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


  Сведения об ответе

lourence

22:56, 4th August, 2020

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

http://msdn.microsoft.com/en-us/library/xsbfdd8c(VS.71).aspx


Ответить на вопрос

Чтобы ответить на вопрос вам нужно войти в систему или зарегистрироваться