.aspx và .ashx Sự khác biệt CHÍNH


115

Sự khác biệt giữa các trang .aspx và .ashx là gì? Tôi sử dụng ashx ngay bây giờ khi tôi cần xử lý một yêu cầu đã được gọi từ mã và được trả lại bằng phản hồi, nhưng tôi muốn có câu trả lời kỹ thuật hơn.

Câu trả lời:


101

Page là một trình xử lý trường hợp đặc biệt.

Trình xử lý Web chung ( *.ashx, trình xử lý dựa trên tiện ích mở rộng) là trình xử lý HTTP mặc định cho tất cả các trình xử lý Web không có giao diện người dùng và bao gồm @WebHandlerchỉ thị.

Trình xử lý trang ASP.NET ( *.aspx) là trình xử lý HTTP mặc định cho tất cả các trang ASP.NET.

Trong số các trình xử lý HTTP tích hợp còn có trình xử lý dịch vụ Web ( *.asmx) và trình xử lý theo dõi ( trace.axd)

MSDN nói :

Trình xử lý ASP.NET HTTP là quá trình (thường được gọi là "điểm cuối") chạy theo yêu cầu được gửi đến ứng dụng Web ASP.NET. Trình xử lý phổ biến nhất là trình xử lý trang ASP.NET xử lý tệp .aspx. Khi người dùng yêu cầu tệp .aspx, yêu cầu sẽ được trang xử lý thông qua trình xử lý trang.

Hình ảnh dưới đây minh họa điều này: yêu cầu đường ống

Đối với câu hỏi thứ hai của bạn:

Ashx có xử lý nhiều kết nối hơn aspx không?

Đừng nghĩ như vậy (nhưng chắc chắn, ít nhất là không ít hơn).


cảm ơn bạn, nhưng bạn đã không đề cập đến trình xử lý ashx, còn Đường ống yêu cầu của nó thì sao?
Arrabi

1
@Arrabi, HttpHandlerchỉ là một phần của yêu cầu đang được thực hiện trước Pagephần.
Alex

82

.aspxsử dụng một vòng đời đầy đủ ( Init, Load, PreRender) và có thể đáp ứng với nhấp chuột vào nút, vv
Một .ashxchỉ có một đơn ProcessRequestphương.


"Có thể tái sử dụng" có nghĩa là gì trong ngữ cảnh này?
redcalx

11
Rằng máy chủ web không bắt buộc phải tạo một phiên bản đối tượng mới theo yêu cầu mới. Nếu IsReusable = true vào Handler, thì máy chủ có thể tái sử dụng hiện xử lý các đối tượng để xử lý các yêu cầu tiếp theo
Quetzalcoatl

2
Vì vậy, nó tạo ra một thể hiện của trình xử lý và giữ trong bộ nhớ để sử dụng lại nó. Nó không bao giờ trả lại cho GC.
uzay95

26

.aspx là một trang được kết xuất. Nếu bạn cần xem, hãy sử dụng trang .aspx. Nếu tất cả những gì bạn cần là chức năng phụ trợ nhưng vẫn ở trên cùng một chế độ xem, hãy sử dụng trang .ashx.


mà tôi biết, tôi muốn có thêm câu trả lời kỹ thuật có thể với các con số, liệu ashx có xử lý nhiều kết nối hơn aspx không?
Arrabi

1

Đối với những người đã lập trình trong nodeJs trước đó, đặc biệt là sử dụng expressJS. Tôi nghĩ về .ashxmột phần mềm trung gian gọi nextchức năng. Trong khi .aspxsẽ là điều khiển mà thực sự đáp ứng yêu cầu hoặc xung quanh res.redirect, res.sendhoặc bất cứ điều gì.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.