Perbedaan UTAMA .aspx vs .ashx


115

Apa perbedaan antara halaman .aspx dan .ashx? Saya menggunakan ashx sekarang ketika saya perlu menangani permintaan yang dipanggil dari kode dan dikembalikan dengan tanggapan, tetapi saya ingin jawaban yang lebih teknis.

Jawaban:


101

Page adalah penangan kasus khusus.

Penangan Web Generik ( *.ashx, prosesor berbasis ekstensi) adalah penangan HTTP default untuk semua penangan Web yang tidak memiliki UI dan yang menyertakan @WebHandlerdirektif.

Penangan halaman ASP.NET ( *.aspx) adalah penangan HTTP default untuk semua halaman ASP.NET.

Di antara penangan HTTP bawaan ada juga penangan layanan Web ( *.asmx) dan penangan Jejak ( trace.axd)

MSDN mengatakan :

Penangan HTTP ASP.NET adalah proses (sering disebut sebagai "titik akhir") yang berjalan sebagai tanggapan atas permintaan yang dibuat untuk aplikasi ASP.NET Web. Penangan yang paling umum adalah penangan halaman ASP.NET yang memproses file .aspx. Ketika pengguna meminta file .aspx, permintaan diproses oleh halaman melalui penangan halaman.

Gambar di bawah mengilustrasikan ini: meminta saluran pipa

Mengenai pertanyaan kedua Anda:

Apakah ashx menangani lebih banyak koneksi daripada aspx?

Jangan berpikir begitu (tapi yang pasti, setidaknya tidak kurang dari).


terima kasih, tapi Anda tidak menyebutkan ashx handler, bagaimana dengan Request Pipe Line?
Arrabi

1
@Arrabi, HttpHandlerhanyalah bagian dari permintaan yang dijalankan sebelum Pagebagian.
Alex

82

.aspxmenggunakan siklus penuh ( Init, Load, PreRender) dan dapat menanggapi klik tombol dll
Sebuah .ashxmemiliki hanya satu ProcessRequestmetode.


Apa yang dimaksud dengan 'dapat digunakan kembali' dalam konteks ini?
redcalx

11
Bahwa server web tidak berkewajiban untuk membuat instance objek baru per permintaan baru. Jika IsReusable = true pada Handler, maka server dapat menggunakan kembali objek handler yang ada untuk memproses permintaan berikutnya
quetzalcoatl

2
Jadi itu membuat sebuah instance dari handler dan menyimpannya di memori untuk digunakan kembali. Itu tidak pernah mengembalikannya ke GC.
uzay95

26

.aspx adalah halaman yang dirender. Jika Anda membutuhkan tampilan, gunakan halaman .aspx. Jika yang Anda butuhkan hanyalah fungsionalitas backend tetapi tetap pada tampilan yang sama, gunakan halaman .ashx.


yang saya tahu, saya ingin jawaban yang lebih teknis mungkin dengan angka, apakah ashx menangani lebih banyak koneksi daripada aspx?
Arrabi

1

Untuk orang yang telah memprogram di nodeJ sebelumnya, khususnya menggunakan expressJS. Saya menganggapnya .ashxsebagai middleware yang memanggil nextfungsi tersebut. While .aspxakan menjadi pengontrol yang benar-benar menanggapi permintaan baik di sekitar res.redirect, res.sendatau apa pun.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.