Каковы различия между страницами .aspx и .ashx? Я использую ashx сейчас, когда мне нужно обработать запрос, который был вызван из кода и возвращен с ответом, но я бы хотел получить более технический ответ.
.aspx vs .ashx ОСНОВНАЯ разница
Ответ 1
Page
- специальный обработчик.
Generic Web-обработчик (*.ashx
, процессор на основе расширений) является обработчиком HTTP по умолчанию для всех обработчиков Web, у которых нет пользовательского интерфейса и которые включают директиву @WebHandler
.
Обработчик страницы ASP.NET(*.aspx
) является обработчиком HTTP по умолчанию для всех страниц ASP.NET.
Среди встроенных обработчиков HTTP есть также обработчик веб-сервисов (*.asmx
) и обработчик трассировки (trace.axd
)
MSDN говорит:
Обработчик HTTP ASP.NET - это процесс (часто называемый "конечная точка" ), которая выполняется в ответ на запрос, сделанный в ASP.NET Web выражение. Самый обычный обработчик является обработчиком страницы ASP.NET, который процессов .aspx файлов. Когда пользователи запросить файл .aspx, запрос обрабатывается страницей через страницу обработчик.
Ниже приведено изображение ниже:
Что касается вашего второго вопроса:
Использует ли ashx больше соединений, чем aspx?
Не думайте так (но наверняка, по крайней мере, не менее).
Ответ 2
.aspx
использует полный жизненный цикл (Init
, Load
, PreRender
) и может реагировать на нажатия кнопок и т.д. .ashx
имеет только один метод ProcessRequest
.
Ответ 3
.aspx - это отображаемая страница. Если вам нужно представление, используйте страницу .aspx. Если все, что вам нужно, это бэкэнд-функциональность, но будет оставаться на одном и том же виде, используйте страницу .ashx.
Ответ 4
Для людей, которые ранее программировали в nodeJs, особенно с использованием expressJS. Я думаю о .ashx
как о промежуточном программном обеспечении, которое вызывает функцию next
. В то время как .aspx
будет контроллером, который фактически отвечает на запрос либо около res.redirect
, res.send
, либо как угодно.