直播中
優(yōu)點(diǎn)
如果要在諸多Web頁(yè)間傳遞一個(gè)變量,那么用Session變量要比通過(guò)QueryString傳遞變量可使問(wèn)題簡(jiǎn)化。
要使WEb站點(diǎn)具有用戶(hù)化,可以考慮使用Session變量。你的站點(diǎn)的每位訪(fǎng)問(wèn)者都有用戶(hù)化的經(jīng)驗(yàn),基于此,隨著LDAP和諸如MS Site Server等的使用,已不必再將所有用戶(hù)化過(guò)程置入Session變量了,而這個(gè)用戶(hù)化是取決于用戶(hù)喜好的。
你可以在任何想要使用的時(shí)候直接使用session變量,而不必事先聲明它,這種方式接近于在VB中變量的使用。使用完畢后,也不必考慮將其釋放,因?yàn)樗鼘⒆詣?dòng)釋放。
缺點(diǎn)
Session變量和cookies是同一類(lèi)型的。如果某用戶(hù)將瀏覽器設(shè)置為不兼容任何cookie,那么該用戶(hù)就無(wú)法使用這個(gè)Session變量!
當(dāng)一個(gè)用戶(hù)訪(fǎng)問(wèn)某頁(yè)面時(shí),每個(gè)Session變量的運(yùn)行環(huán)境便自動(dòng)生成,這些Session變量可在用戶(hù)離開(kāi)該頁(yè)面后仍保留20分鐘?。ㄊ聦?shí)上,這些變量一直可保留至“timeout”?!皌imeout”的時(shí)間長(zhǎng)短由Web服務(wù)器管理員設(shè)定。一些站點(diǎn)上的變量?jī)H維持了3分鐘,一些則為10分鐘,還有一些則保留至默認(rèn)值20分鐘。)所以,如果在Session中置入了較大的對(duì)象(如ADO recordsets,connections, 等等),那就有麻煩了!隨著站點(diǎn)訪(fǎng)問(wèn)量的增大,服務(wù)器將會(huì)因此而無(wú)法正常運(yùn)行!
因?yàn)閯?chuàng)建Session變量有很大的隨意性,可隨時(shí)調(diào)用,不需要開(kāi)發(fā)者做精確地處理,所以,過(guò)度使用session變量將會(huì)導(dǎo)致代碼不可讀而且不好維護(hù)。
雖然“你可以在任何想要使用的時(shí)候直接使用session變量,而不必事先聲明它,這種方式接近于在VB中變量的使用。使用完畢后,也不必考慮將其釋放,因?yàn)樗鼘⒆詣?dòng)釋放”。但是,“誰(shuí)”想到那兒呢?變量的含義是什么?這些都變得不很清晰。
總結(jié)
使用Session變量既有優(yōu)點(diǎn),又有缺點(diǎn)。就我個(gè)人的觀點(diǎn),最好少用,但在某些地方使用它們確實(shí)能使Web開(kāi)發(fā)大大地簡(jiǎn)化。是否使用Session變量完全取決于個(gè)人的需要,無(wú)論使用與否,都要事先考慮其優(yōu)缺點(diǎn)