Jakie są różnice między stronami .aspx i .ashx? Używam Ashx teraz, gdy muszę obsłużyć żądanie, które zostało wywołane z kodu i zwrócone z odpowiedzią, ale chciałbym uzyskać bardziej techniczną odpowiedź.
Page
jest specjalną obsługą przypadku.
Ogólny program obsługi sieci Web ( *.ashx
procesor oparty na rozszerzeniu) jest domyślnym programem obsługi HTTP dla wszystkich programów obsługi sieci Web, które nie mają interfejsu użytkownika i które zawierają @WebHandler
dyrektywę.
Program obsługi stron ASP.NET ( *.aspx
) to domyślny program obsługi HTTP dla wszystkich stron ASP.NET.
Wśród wbudowanych programów obsługi HTTP znajdują się również funkcje obsługi usług internetowych ( *.asmx
) i obsługi śledzenia ( trace.axd
)
MSDN mówi :
Procedura obsługi ASP.NET HTTP to proces (często nazywany „punktem końcowym”), który jest uruchamiany w odpowiedzi na żądanie skierowane do aplikacji sieci Web ASP.NET. Najpopularniejszym programem obsługi jest program obsługi stron ASP.NET, który przetwarza pliki .aspx. Gdy użytkownicy żądają pliku aspx, żądanie jest przetwarzane przez stronę za pośrednictwem programu obsługi strony.
Poniższy obraz ilustruje to:
A jeśli chodzi o drugie pytanie:
Czy ashx obsługuje więcej połączeń niż aspx?
Nie myśl tak (ale na pewno nie mniej niż).
HttpHandler
to tylko sekcja żądania, która jest wykonywana przedPage
sekcją..aspx
wykorzystuje pełen cykl (Init
,Load
,PreRender
) i może reagować na kliknięcia przycisków itp ma tylko jedną metodę..ashx
ProcessRequest
źródło
.aspx to renderowana strona. Jeśli potrzebujesz widoku, użyj strony .aspx. Jeśli potrzebujesz tylko funkcji zaplecza, ale pozostaniesz w tym samym widoku, użyj strony .ashx.
źródło
Dla ludzi, którzy wcześniej programowali w nodeJs, szczególnie używając expressJS. Myślę
.ashx
jako warstwy pośredniej , która wywołujenext
funkcję. Podczas gdy.aspx
będzie kontrolerem, który faktycznie odpowie na żądanie albo w pobliżures.redirect
,res.send
albo cokolwiek.źródło