Введение в кеширование в ASP.NET

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

Что такое кэширование в ASP.Net?

Инфраструктура .Net также предоставляет возможность кэширования, позволяющую повысить производительность вашего приложения. Теперь вы спрашиваете, ASP .Net используется для создания пользовательских динамических веб-страниц, тогда как он кеширует контент?

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

Как работает кэширование в ASP.Net?

Очень важно понимать процесс кэширования ASP.Net веб-страниц или данных. Чтобы понять это, нам нужно понять процесс компиляции .Net, чтобы мы получили четкое представление о том, когда и где кэшировать страницы для оптимальной производительности. Код страницы ASP.Net компилируется в два этапа - этап MSIL и этап JIT. На этапе MSIL код страницы, написанный на языках высокого уровня, компилируется в Microsoft Intermediate Language. Это происходит всякий раз, когда мы строим наш проект. Весь сайт или проект компилируется в MSIL каждый раз, когда мы создаем. На этапе JIT код MSIL затем преобразуется в собственный машинный код компилятором Just In Time. Это происходит во время исполнения страницы. Однако не весь проект все время преобразуется в нативный код. Только страницы, запрошенные пользователем, преобразуются из MSIL в собственный код во время выполнения. Это экономит большую пропускную способность сети и повышает производительность.

Теперь, какой код мы должны кэшировать, когда мы должны кэшировать и где?

ASP.Net имеет полнофункциональный движок, предназначенный для кэширования. Он имеет такие функции, как временная зависимость, зависимость от файла и ключа, срок действия, очистка данных и т. Д. Мы не будем вдаваться в подробности в этой статье. Нам нужно понять, что мы можем кэшировать наши страницы и данные в двух местах, чтобы повысить производительность нашего приложения ASP.Net. Первым местом является раздел Page Cache, расположенный на сервере ASP.Net. Этот магазин хранит кэши вывода страниц и кэши фрагментов страницы, в основном страницы ASPX. Всякий раз, когда запрашивается в основном статическая страница, копия сгенерированного собственного кода сохраняется в разделе «Кэширование страниц». Это экономит время компиляции JIT во время последующих запросов страниц. Второе место - это кэш данных. Здесь хранятся данные, полученные с серверов данных или других серверов. Хранение копии этих данных помогает сохранить будущие сетевые вызовы на серверах баз данных или других сторонних серверах. Вот несколько примеров кэшированных данных: данные SQL Server, данные XML, данные JSON, ответы API сторонних производителей и т. Д.

Типы кеширования в ASP.Net

1. Кэширование вывода страницы

Кэширование вывода страницы означает кэширование полного вывода запрошенной страницы. Всякий раз, когда пользователь запрашивает страницу ASP.Net, JIT-компилятор компилирует соответствующий код MSIL и генерирует вывод собственного кода, который будет отправлен в качестве ответа клиенту. Это означает, что каждый раз, когда запрашивается страница, JIT-компилятор должен генерировать собственный код. Что если страница статична по своей природе? Что, если выходные данные страницы будут одинаковыми после каждой компиляции? Мы можем сэкономить много времени и ресурсов компиляции, если будем хранить сгенерированный нативный код внутри Page Cache. Последующие запросы на ту же страницу могут быть получены из кэша. Это называется кэшированием вывода страницы. Чтобы добиться кэширования вывода страницы, нам нужно указать директиву OuputCache в коде ASP.Net с продолжительностью в секундах.





2. Кэширование фрагментов страницы

Мы видели, как кешировать статическую страницу. Что делать, если страница динамическая и зависит от пользователя? Здесь идет кеширование фрагмента страницы. Это позволяет разработчику кэшировать определенные разделы страницы. Это помогает, когда вы хотите кэшировать верхний и нижний колонтитулы, которые в основном статичны для каждого пользователя. Для достижения кэширования фрагмента страницы в ASP.Net необходимо инкапсулировать фрагмент кода в отдельный пользовательский элемент управления. Затем добавьте ту же директиву OuputCache в пользовательский элемент управления. Когда пользовательский элемент управления загружается вместе со страницей, его копия сохраняется в кэше. Таким образом, все последующие ссылки на один и тот же пользовательский элемент управления на той же странице или на другой странице будут выбраны из кэша.





3. Кеширование данных

Кэширование данных - это механизм хранения необходимых данных, к которым часто обращаются, в кеше. Это может значительно улучшить производительность приложения. Это связано с тем, что кэширование данных сохраняет вызовы туда-обратно базы данных, которые, как известно, занимают больше всего времени. Когда кешируются часто используемые и редко изменяемые данные, сервер извлекает данные из кеша вместо выполнения вызовов базы данных. Это также может сэкономить вам деньги, так как звонки из базы данных на облачные серверы данных взимают плату за каждый запрос. Кэширование данных в ASP.Net само по себе является полноценным движком. Чтобы добиться кэширования данных на нашей веб-странице ASP, нам нужно использовать объект Cache.

Cache("ProductName")="My Product";
Label1.Text= Cache("ProductName").ToString();

Зачем нам кэширование в ASP.Net?

Поняв процесс кэширования в ASP.Net, давайте рассмотрим некоторые практические примеры, где кэширование реализовано в сценариях в реальном времени.

  • Есть информативная страница, которая генерирует отчеты на основе данных в базе данных. Таблицы базы данных обновляются каждые несколько часов.
    Кэширование вывода страницы может использоваться в таком сценарии с продолжительностью кэширования, установленной в соответствии с частотой задания обновления данных.
  • Есть страница, которая показывает несколько таблиц и данных, которые постоянно меняются. Однако легенды и пояснения к данным остаются прежними.
    Кэширование фрагмента страницы можно использовать только для кэширования статической легенды и пояснительных данных.
  • Существует панель пользователя, которая настраивается пользователем и генерирует графики и диаграммы по запросам пользователей. Данные, используемые для создания графиков и диаграмм, изменяются нечасто.
    Кэширование данных может использоваться для кэширования данных и динамического создания запрошенных пользователем диаграмм и графиков.

Вывод

Таким образом, мы узнали, что кэширование имеет большое значение для повышения производительности нашего приложения ASP.Net. Это была вводная статья о кэшировании в ASP.Net. Это еще не все, чтобы исследовать. Рекомендуется больше узнать о кешировании, чтобы еще больше повысить производительность приложения.

Рекомендуемая статья

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

  1. ASP.NET Framework
  2. ASP.Net Validation Controls
  3. Карьера в ASP.NET
  4. .NET Интервью Вопросы