Apa perbedaan antara SessionState dan ViewState?

117

Apa perbedaan antara SessionState dan ViewState di ASP.NET?

Natrium
sumber
7
Saya mencoba Google, tetapi saya tidak dapat menemukan ikhtisar.
Natrium

Jawaban:

143

Status Sesi berisi informasi yang berkaitan dengan sesi tertentu (oleh klien / browser / mesin tertentu) dengan server. Ini adalah cara untuk melacak apa yang dilakukan pengguna di situs .. di beberapa halaman ... di tengah keadaan tanpa kewarganegaraan di Web. mis. konten keranjang belanja pengguna tertentu adalah data sesi. Cookie dapat digunakan untuk status sesi.
Lihat Negara di sisi lain adalah informasi khusus untuk halaman web tertentu. Itu disimpan di bidang tersembunyi sehingga tidak terlihat oleh pengguna. Ini digunakan untuk menjaga ilusi pengguna bahwa halaman tersebut mengingat apa yang dia lakukan terakhir kali - jangan memberinya halaman yang bersih setiap kali dia memposting kembali. Periksa halaman ini untuk lebih lanjut .

Gishu
sumber
96

Status sesi disimpan di server, Kondisi Tampilan disimpan di halaman.

Keadaan sesi biasanya dihapus setelah periode tidak aktif dari pengguna (tidak ada permintaan yang terjadi yang berisi id sesi dalam cookie permintaan).

Status tampilan diposting pada posting berikutnya kembali di bidang tersembunyi.

thinkbeforecoding
sumber
30
+1 Ya - poin penting bahwa Kondisi Tampilan bergerak naik turun antara klien dan server, tetapi SessionState tetap di server.
Gordon Mackie JoanMiro
1
Ini seharusnya menjadi jawaban resmi
Fandango68
33

SessionState

  • Dapat disimpan dalam memori, yang menjadikannya solusi cepat. Yang berarti negara tidak dapat dibagi di Web Farm / Web Garden.
  • Dapat disimpan dalam Database, berguna untuk Web Farms / Web Gardens.
  • Dihapus saat sesi mati - biasanya setelah 20 menit tidak ada aktivitas.

ViewState

  • Dikirim bolak-balik antara server dan klien, menghabiskan bandwidth.
  • Tidak memiliki tanggal kedaluwarsa.
  • Berguna dalam Web Farm / Web Garden
Jesper Fyhr Knudsen
sumber
14

Penggunaan: Jika Anda akan menyimpan informasi yang ingin Anda akses di halaman web yang berbeda, Anda dapat menggunakan SessionState

Jika Anda ingin menyimpan informasi yang ingin Anda akses dari halaman yang sama, maka Anda dapat menggunakan Kondisi Tampilan

Penyimpanan Kondisi Tampilan disimpan dalam halaman itu sendiri (dalam teks terenkripsi), sedangkan Sessionstate disimpan di server.

SessionState akan dihapus dalam kondisi berikut

  1. Dibersihkan oleh programmer
  2. Dihapus oleh pengguna
  3. Waktu habis
Cyril Gupta
sumber
5
ViewStates tidak dienkripsi. Mereka terlihat seperti itu, tetapi dapat dengan mudah diterjemahkan.
Vandel212
5

Sesi digunakan terutama untuk menyimpan data khusus pengguna [data khusus sesi]. Dalam kasus sesi, Anda dapat menggunakan nilai untuk seluruh sesi hingga sesi berakhir atau pengguna meninggalkan sesi. Kondisi tampilan adalah jenis data yang memiliki cakupan hanya di halaman tempat data tersebut digunakan. Anda tidak dapat memiliki nilai kondisi tampilan yang dapat diakses ke halaman lain kecuali Anda mentransfer nilai tersebut ke halaman yang diinginkan. Juga dalam kasus kondisi tampilan, semua data kontrol sisi server ditransfer ke server sebagai pasangan nilai kunci di __Viewstate dan ditransfer kembali dan diberikan ke kontrol yang sesuai di klien saat postback terjadi.

rahul
sumber