Вступ до кешування в ASP.NET

Кешування в ASP.NET - це можливість зберігати сторінку веб-сайту або дані в пам'яті для швидкого доступу. В ASP.NET вам не потрібно знову і знову натискати на сервер для однакової відповіді. Зберігайте його в пам'яті комп’ютера і швидше завантажуйте його. Звичайно, це працює лише зі статичними даними, оскільки динамічні дані змінюються залежно від кожного запиту на сервер.

Що таке кешування в ASP.Net?

Рамка .Net також надає можливість кешування, щоб покращити продуктивність вашої програми. Тепер ви запитуєте, ASP .Net використовується для створення залежних від користувача динамічних веб-сторінок, то як він кешує вміст?

Давайте розберемося в цьому за двома сценаріями - перший там, де сторінка є інформаційною панеллю користувача, а другий, де є списки продуктів. Сценарій другий не залежить від користувача, продукти однакові з кожним запитом на сервер, і таким чином вся сторінка може кешуватися. Знову ж таки, ціна та доступність продуктів мінливі, що вдається впоратися шляхом своєчасного оновлення кешу. Сценарій перший залежить від користувача, приладова панель для одного користувача може взагалі не схожа на іншого. Але все ж є кілька компонентів, таких як зображення, легенди, заголовки та колонтитули, які можуть бути кешовані для підвищення продуктивності.

Як працює кешування в ASP.Net?

Дуже важливо зрозуміти процес кешування ASP.Net веб-сторінок або даних. Щоб зрозуміти це, нам потрібно було б зрозуміти процес компіляції .Net, щоб ми отримали чітке розуміння того, коли і куди кешувати сторінки для досягнення оптимальної продуктивності. Код сторінки ASP.Net складається у два етапи: етап MSIL та етап JIT. На етапі MSIL код сторінки, написаний мовами високого рівня, компілюється в проміжну мову Microsoft. Це відбувається кожного разу, коли ми будуємо наш проект. Весь веб-сайт або проект збирається в MSIL кожен раз, коли ми створюємо. На етапі JIT код MSIL потім перетворюється в нативний машинний код компілятором Just In Time. Це відбувається під час виконання сторінки. Однак не весь проект весь час перетворюється у нативний код. Під час виконання з сторінки MSIL в нативний код перетворюються лише сторінки, запитувані користувачем. Це економить велику пропускну здатність мережі та покращує продуктивність.

Тепер, який код ми повинні кешувати, коли ми кешуємо і де?

ASP.Net має повнофункціональний движок, призначений для кешування. У ньому є такі функції, як залежність від часу, залежність від файлів і ключів, термін придатності, пошук даних тощо. Що нам потрібно зрозуміти, це те, що ми можемо кешувати наші сторінки та дані у двох місцях, щоб покращити продуктивність нашого додатка ASP.Net. Перше місце - це розділ Кеш сторінки, що знаходиться на сервері ASP.Net. Цей магазин зберігає кеш-сторінки та кеші фрагментів сторінки, в основному сторінки ASPX. Щоразу, коли вимагається в основному статична сторінка, копія згенерованого нативного коду зберігається в розділі Кеш сторінки. Це економить час компіляції JIT під час подальших запитів на сторінку. Друге місце - кеш даних. Тут зберігаються дані, отримані з серверів даних або інших серверів. Збереження копії цих даних допомагає зберегти майбутні мережеві дзвінки на сервери баз даних або інші сторонні сервери. Кілька прикладів кешованих даних - це дані SQL Server, дані XML, дані JSON, відповіді сторонніх API тощо.

Типи кешування в ASP.Net

1. Кешування вихідних сторінок

Кешування виводу сторінки означає кешування повного виводу потрібної сторінки. Кожного разу, коли користувач запитує сторінку ASP.Net, компілятор JIT збирає відповідний код MSIL і генерує вихідний вихідний код, який повинен бути надісланий як відповідь клієнту. Це означає, що кожного разу, коли запит на сторінку, компілятор JIT повинен генерувати нативний код. Що робити, якщо сторінка має статичний характер? Що робити, якщо вихід сторінки однаковий після кожної компіляції? Ми можемо заощадити багато часу та ресурсів на компіляцію, якщо збережемо створений нативний код у кеш-пам'яті сторінки. Наступні запити на ту саму сторінку можна замість цього отримати з кеша. Це називається кешування сторінок. Для досягнення кешування вихідних сторінок нам потрібно вказати директиву OuputCache в коді ASP.Net тривалістю в секундах.





2. Кешування фрагментів сторінки

Ми бачили, як кешувати статичну сторінку. Що робити, якщо сторінка динамічна і змінюється залежно від користувачів? Ось іде кешування фрагментів сторінки. Це дозволяє розробнику кешувати певні розділи сторінки. Це допомагає, коли ви хочете кешувати заголовок та нижній колонтитул, які є в основному статичними для кожного користувача. Щоб досягти кешування фрагментів сторінки в ASP.Net, потрібно інкапсулювати код фрагмента в окремий елемент управління користувачем. Потім додайте ту саму директиву OuputCache в керування користувачам. Коли керування користувача завантажується разом зі сторінкою, його копія зберігається в кеші. Таким чином, усі наступні посилання на один і той же елемент управління на тій же сторінці або на іншій сторінці будуть отримані з кеша.





3. Кешування даних

Кешування даних - це механізм зберігання потрібних даних, до яких часто звертаються, у кеш. Це може значно підвищити продуктивність програми. Це відбувається тому, що кешування даних економить дзвінки в зворотні поїздки до бази даних, які є горезвісними для того, що витрачають найбільше часу. Коли дані, які часто звертаються і кешовані рідко змінені дані, сервер отримує дані з кешу, а не здійснює дзвінки до бази даних. Це також може заощадити гроші, оскільки дзвінки до бази даних на хмарних серверах даних стягують плату за кожний запит. Кешування даних в ASP.Net - це повноцінний двигун сам по собі. Для досягнення кешування даних на нашій веб-сторінці ASP нам потрібно використовувати об’єкт Кеш.

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
  3. Кар'єра в ASP.NET
  4. Питання для інтерв'ю .NET