Arhn - архитектура программирования

SSI-подобная функция в ASP.NET/ASP.NET MVC

Это может быть в некотором роде еретическим вопросом. У нас есть большой сайт, где много страниц все еще в ASP. В основном, они не очень динамичны, но включают (через SSI или Server.Execute) периодически регенерируемые фрагменты HTML. Это может выглядеть как кэширование бедняка, но оно работает очень хорошо, и я предполагаю, что Microsoft сильно оптимизировала IIS для этого сценария.

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

Самое близкое, что мне удалось найти в ASP.NET, это:

<% Response.WriteFile("GeneratedSnippet.inc"); %>

что, по-видимому, эквивалентно

<% Server.Execute "GeneratedSnippet.inc" %>

в АСП. Возможно, это даже быстрее, потому что нет кода для выполнения. Но это, возможно, не так эффективно, как:

<!--#include file="GeneratedSnippet.inc" -->

Как я упоминал выше, я подозреваю, что IIS был оптимизирован для работы с SSI, а также ASP на протяжении многих лет. С другой стороны, Response.WriteFile, скорее всего, действительно читает файл и выдает его. У кого-нибудь есть понимание двух или некоторого опыта?

Может быть, я слишком беспокоюсь, но большая часть нашего контента с большим трафиком по-прежнему работает на ASP и использует много SSI, поэтому даже небольшая разница в Response.WriteFile может накапливаться и оказывать заметное влияние.

27.07.2010

Ответы:


1

Что ты спрашиваешь? :)

ССИ умер. Да, это было сильно оптимизировано на СЕРВЕРНОЙ СТОРОНЕ, однако может быть не очень эффективно кэшировать управление не только на сервере, но и в браузерах.

Если вы используете слишком много SSI, серверу придется проверять измененный статус всех связанных файлов для каждого запроса. Вы не можете контролировать заголовки HTTP, например, Expires и ETag.

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

28.07.2010
Новые материалы

Коллекции публикаций по глубокому обучению
Последние пару месяцев я создавал коллекции последних академических публикаций по различным подполям глубокого обучения в моем блоге https://amundtveit.com - эта публикация дает обзор 25..

Представляем: Pepita
Фреймворк JavaScript с открытым исходным кодом Я знаю, что недостатка в фреймворках JavaScript нет. Но я просто не мог остановиться. Я хотел написать что-то сам, со своими собственными..

Советы по коду Laravel #2
1-) Найти // You can specify the columns you need // in when you use the find method on a model User::find(‘id’, [‘email’,’name’]); // You can increment or decrement // a field in..

Работа с временными рядами спутниковых изображений, часть 3 (аналитика данных)
Анализ временных рядов спутниковых изображений для данных наблюдений за большой Землей (arXiv) Автор: Рольф Симоэс , Жильберто Камара , Жильберто Кейрос , Фелипе Соуза , Педро Р. Андраде ,..

3 способа решить квадратное уравнение (3-й мой любимый) -
1. Методом факторизации — 2. Используя квадратичную формулу — 3. Заполнив квадрат — Давайте поймем это, решив это простое уравнение: Мы пытаемся сделать LHS,..

Создание VR-миров с A-Frame
Виртуальная реальность (и дополненная реальность) стали главными модными терминами в образовательных технологиях. С недорогими VR-гарнитурами, такими как Google Cardboard , и использованием..

Демистификация рекурсии
КОДЕКС Демистификация рекурсии Упрощенная концепция ошеломляющей О чем весь этот шум? Рекурсия, кажется, единственная тема, от которой у каждого начинающего студента-информатика..