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.

Arrabi
sumber

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).

Alex
sumber
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.

Hans Ke st ing
sumber
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.

Babak Naffas
sumber
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.

flash
sumber