張旭輝
摘 要:網(wǎng)站的基本功能是實(shí)現(xiàn)與用戶的交互,頁(yè)面之間的數(shù)據(jù)傳輸和維護(hù)就變得極為重要,其執(zhí)行效率直接的影響程序的性能。無(wú)論是值傳遞和保存數(shù)據(jù),都有其適用條件和范圍。在實(shí)踐中,程序員需要根據(jù)實(shí)際情況,對(duì)各種方法的優(yōu)缺點(diǎn)進(jìn)行對(duì)比,做出最好的選擇。
關(guān)鍵詞:web;Cookie;數(shù)據(jù)交互;保留數(shù)據(jù)
中圖分類號(hào):TP391 文獻(xiàn)標(biāo)識(shí)碼:A
一個(gè)網(wǎng)站的基本功能是實(shí)現(xiàn)頁(yè)面之間與用戶的交互,他的一個(gè)重要途徑是數(shù)據(jù)的傳輸和維護(hù),前提必須是一個(gè)Web的程序,執(zhí)行效率和程序的性質(zhì)相互影響。ASP.NET程序?yàn)閷?shí)現(xiàn)數(shù)據(jù)的傳輸和持續(xù)提供了各種互有優(yōu)勢(shì)的方法。對(duì)于各種方法做出如下詳細(xì)的介紹。
一、頁(yè)面間的數(shù)據(jù)傳輸
在用戶訪問網(wǎng)站時(shí),頁(yè)面跳轉(zhuǎn)之間總是很迅速并且多次的。用戶點(diǎn)擊一個(gè)鏈接(通常這個(gè)鏈接顯示在其他網(wǎng)站的頁(yè)面上),也可以雙擊某個(gè)標(biāo)志點(diǎn)進(jìn)行信息的交互,就可以展開想要讀取的內(nèi)容,實(shí)現(xiàn)自動(dòng)重定向頁(yè)在特定的狀態(tài)下方可以啟動(dòng)。無(wú)論在什么情況下,允許用戶改變頁(yè)面導(dǎo)航都不能浪費(fèi)用戶的狀態(tài),即在該網(wǎng)站的用戶,其狀態(tài)必須是連續(xù)的,有一些數(shù)據(jù)需要兩個(gè)頁(yè)面間的相互讀取和交換,可以互相請(qǐng)求獲取對(duì)方的原頁(yè)面。
1 取得地址欄參數(shù)值
傳輸方法的值是取得地址欄參數(shù)值最簡(jiǎn)單、最常用的方法,可以實(shí)現(xiàn)超文本傳輸協(xié)議查詢字符串參數(shù)的Uniform Resource Locator后面的值:第一個(gè)參數(shù)名表現(xiàn)方式為參數(shù)的系數(shù)和第二個(gè)參數(shù)名稱的乘積,等于參數(shù)系數(shù)和第三參數(shù)名稱的乘積,以此類推可以做到參數(shù)域名之間的轉(zhuǎn)換。
模式轉(zhuǎn)換和網(wǎng)頁(yè)的網(wǎng)址導(dǎo)航鏈接:< a>對(duì)水平基準(zhǔn)屬性和控件鏈接進(jìn)行了同等的標(biāo)記,導(dǎo)航的URL對(duì)相互鏈接的參數(shù)名稱進(jìn)行關(guān)聯(lián);控制按鈕可以通過連接參數(shù)返回URL屬性集的目標(biāo)頁(yè);運(yùn)用數(shù)據(jù)傳輸方法的形式實(shí)現(xiàn)對(duì)目標(biāo)URL指定的值,作為控制參數(shù)后連接URL中的參數(shù)設(shè)置,運(yùn)用這個(gè)參數(shù)值的對(duì)參數(shù)名稱進(jìn)行值的控制;重定向的方法響應(yīng)對(duì)象的可調(diào)整參數(shù)的URL是客戶端瀏覽器指定的URL;該方法傳遞一個(gè)會(huì)話對(duì)象可以設(shè)置URL將客戶端重定向到新的一頁(yè),其執(zhí)行結(jié)束的當(dāng)前頁(yè),保存當(dāng)前頁(yè)的頁(yè)面的對(duì)象(表單數(shù)據(jù))數(shù)據(jù)鏈和查詢字符串和當(dāng)前的需求并開始獲取目標(biāo)頁(yè)的URL指定的頁(yè)面,并對(duì)已加載數(shù)據(jù)源仍然保存。
會(huì)話對(duì)象可以執(zhí)行一個(gè)方法參數(shù)設(shè)置URL將客戶端重定向到新的頁(yè)面,實(shí)現(xiàn)暫停當(dāng)前頁(yè),當(dāng)前請(qǐng)求開始執(zhí)行新的URL指定的頁(yè)面,然后返回到源頁(yè)繼續(xù)運(yùn)行。這使得在瀏覽器的地址欄URL中的用戶,也可以直接傳遞參數(shù)。
字符串的交互的信息是用可以看見的文字符號(hào)進(jìn)行用戶之間的交換,而這些操作都是在URL中進(jìn)行的。同樣的如果想明文交換也可以設(shè)置編譯密碼。這是一種簡(jiǎn)單方便的交互方式。但是所交換的信息會(huì)相應(yīng)的變小,同時(shí)只能是以信息的方式進(jìn)行交互,而不能直接傳遞。這樣的交換數(shù)據(jù)的方式可以在URL的頁(yè)面上進(jìn)行請(qǐng)求來獲得鏈接。其公式為:請(qǐng)求查詢字符串名稱[“字符串名稱”]。
2 獲得數(shù)據(jù)集形式
獲得的數(shù)據(jù)集的形式傳遞客戶的需求,即數(shù)據(jù)頁(yè)的形式發(fā)送到后,該方法可以傳輸大量的數(shù)據(jù),訪問數(shù)據(jù)源中的頁(yè)的表格。使用上面的方法,可以實(shí)現(xiàn)數(shù)據(jù)的頁(yè)面之間傳遞,但這些只在指定的頁(yè)的URL中可以得到,即URL的存在周期是有限的根據(jù)實(shí)際需求。如果在用戶訪問一個(gè)網(wǎng)站頁(yè)面和許多頁(yè)面的時(shí)候產(chǎn)生很多的數(shù)據(jù)我們必須隨時(shí)轉(zhuǎn)移,從而增加代碼的復(fù)雜度,降低性能。因此,我們的單用戶數(shù)據(jù)在每個(gè)頁(yè)面導(dǎo)航都需要訪問的所有用戶的需求,或共享數(shù)據(jù),它是必要的使數(shù)據(jù)保持在一個(gè)頁(yè)面上的,但是不可以保存在初始的頁(yè)面上。
二、保留數(shù)據(jù)
常見的ASP.NET狀態(tài)保持有四個(gè),即視圖狀態(tài),Cookie狀態(tài)、會(huì)話狀態(tài),應(yīng)用程序的狀態(tài)。
1 視圖狀態(tài)
即顯示的狀態(tài),保持還原狀態(tài)之間的多個(gè)應(yīng)用服務(wù)器和同一頁(yè)面,監(jiān)控和維護(hù)狀態(tài)顯示W(wǎng)eb頁(yè)面和服務(wù)器之間來回是不相關(guān)的,默認(rèn)情況下所有的傳輸不能在不同的頁(yè)面之間轉(zhuǎn)換??刂品?wù)器具有保持功能狀態(tài),顯示可以應(yīng)用的數(shù)據(jù)量和控制頁(yè)面內(nèi)容,和時(shí)間延長(zhǎng),增加返回的頁(yè)面負(fù)荷的功能,從而降低性能。視圖狀態(tài)存儲(chǔ)在頁(yè)上的隱藏字段和表格,提交和加密哈希函數(shù),但他仍然可以改變,但是ASP.NET頁(yè)框架不能,從而很好的保證安全。為了保持狀態(tài)反饋之間的信息,自動(dòng)發(fā)送的控制信息不應(yīng)包括提供應(yīng)用程序特定的數(shù)據(jù)存儲(chǔ)器頁(yè)面的視圖狀態(tài)。
2 Cookie狀態(tài)
服務(wù)器是眾所周知的數(shù)據(jù)傳輸所需要通過的襯套,可以實(shí)現(xiàn)簡(jiǎn)單的網(wǎng)頁(yè)服務(wù)器的數(shù)據(jù)傳輸。只是在簡(jiǎn)單層面上傳輸。如果你想發(fā)送數(shù)據(jù)到客戶端瀏覽器,或客戶(需求)和數(shù)據(jù)發(fā)送給服務(wù)器的時(shí)侯,Cookie就可以把消息發(fā)送數(shù)據(jù)到服務(wù)器。
信息的服務(wù)器暫時(shí)存儲(chǔ)在您的計(jì)算機(jī)的Cookie是由服務(wù)器生成,為個(gè)人用戶保留。發(fā)送和存儲(chǔ)在客戶端的PC中的Cookie,作為互聯(lián)網(wǎng)協(xié)議與用戶請(qǐng)求的網(wǎng)頁(yè)服務(wù)器和瀏覽器之間傳輸和客戶的網(wǎng)站,有著與頁(yè)的關(guān)聯(lián)性和非特異性。當(dāng)用戶訪問該網(wǎng)站的每一次,網(wǎng)頁(yè)的應(yīng)用程序可以讀取Cookie文件數(shù)據(jù),而用戶知道在網(wǎng)站頁(yè)面上的信息。瀏覽器和服務(wù)器交換信息將見證這一過程,可以用來為使用者存儲(chǔ)和跟蹤其使用的狀態(tài)。
Cookie是兩種有效期。如果不是長(zhǎng)期Cookie,這是暫時(shí)的,在存儲(chǔ)器中存儲(chǔ)在客戶端瀏覽器上,瀏覽器的Cookie將臨時(shí)封閉,可以從內(nèi)存中卸載,如果整個(gè)有效期顯示這是持續(xù)的Cookie,Cookie將在一個(gè)文本文件格式存儲(chǔ)在客戶端的硬盤,直到它到期或其他原因被刪除。
3 會(huì)話狀態(tài)
對(duì)個(gè)人用戶的會(huì)話狀態(tài)存儲(chǔ)在服務(wù)器上必須保留。會(huì)話是用戶在一段時(shí)間內(nèi)的現(xiàn)場(chǎng)記錄。會(huì)話時(shí)間或長(zhǎng)或短,只要用戶會(huì)話沒有超過規(guī)定的時(shí)間,或放棄會(huì)話窗口,或者方法沒有被調(diào)用那么會(huì)話就不會(huì)被關(guān)閉。會(huì)話期間用戶頁(yè)面之間跳躍,這種跳躍是不會(huì)損失會(huì)話的內(nèi)容的。沒有變量存儲(chǔ)在會(huì)話對(duì)象中刪除,因而可以跟蹤程序和會(huì)話可以存儲(chǔ)任何類型任何大小的會(huì)話信息,但沒有限制。因?yàn)闀?huì)議被服務(wù)器內(nèi)部存儲(chǔ),因此將大量的數(shù)據(jù)對(duì)象必須在每一個(gè)新的用戶訪問會(huì)話創(chuàng)建自己的網(wǎng)站時(shí)進(jìn)行反復(fù)的考量,輸出結(jié)果,針對(duì)不同的用戶,他們的談話不同的是,每一次相同的用戶連接的登錄訪問,這是彼此不同的,兩次之間不能共享數(shù)據(jù)。如何理解這種情況。會(huì)話作為一個(gè)人打開Web瀏覽器,他點(diǎn)擊了鏈接頁(yè)面,然后關(guān)閉了這個(gè)頁(yè)面,這種狀態(tài)稱為一個(gè)會(huì)話狀態(tài)。
4 應(yīng)用程序狀態(tài)
應(yīng)用程序?qū)ο蟮男畔⒋鎯?chǔ)在應(yīng)用程序之間共享的所有的用戶。用戶可以修改,從而提供了一種方法,對(duì)應(yīng)用程序?qū)ο筮M(jìn)行鎖定,防止其他用戶修改在變量中的應(yīng)用對(duì)象,以確保在同一時(shí)間,單用戶可以修改訪問記錄;應(yīng)用解鎖方法解除鎖定狀態(tài)的應(yīng)用對(duì)象,可以使用戶可以訪問和修改的方法,盡快解除鎖定,以避免太多的用戶花大量的時(shí)間進(jìn)行等待,減少只有現(xiàn)場(chǎng)執(zhí)行的這種弊端,如果網(wǎng)頁(yè)服務(wù)器關(guān)閉或崩潰,應(yīng)用的對(duì)象的存儲(chǔ)的信息也可能丟失或損壞。
三、其他方法
1 配置文件是一個(gè)XML文本文件,是用于存儲(chǔ)配置信息的應(yīng)用網(wǎng)頁(yè),ASP和Web的應(yīng)用程序,在根目錄下的網(wǎng)絡(luò),自動(dòng)創(chuàng)建一個(gè)默認(rèn)的配置文件,包括默認(rèn)的配置設(shè)置,子目錄繼承的所有的配置設(shè)置可以更改配置文件的應(yīng)用程序的性能。配置文件是基于計(jì)算機(jī)的所有應(yīng)用程序并用來調(diào)整數(shù)據(jù)信息。數(shù)據(jù)文件一般都很小,并且很清晰,特別是常量字符串,如連接字符串的數(shù)據(jù)庫(kù)。
2 配置文件是與特定用戶對(duì)象進(jìn)行交互的,每個(gè)用戶可以自動(dòng)在多個(gè)網(wǎng)頁(yè)應(yīng)用程序訪問是進(jìn)行信息的存儲(chǔ),存儲(chǔ)時(shí)間是長(zhǎng)久的,是增強(qiáng)類型的,可以實(shí)現(xiàn)簡(jiǎn)單的字符串和整數(shù)類型在數(shù)據(jù)轉(zhuǎn)換之間的應(yīng)用,也可以自定義類型的復(fù)雜狀態(tài)。多個(gè)變化軌跡之間是可以相互看到并且可以相互交互的。
3 數(shù)據(jù)庫(kù)和文件信息:數(shù)據(jù)庫(kù)是按照數(shù)據(jù)結(jié)構(gòu)來組織應(yīng)用的方法的,一個(gè)強(qiáng)大的數(shù)據(jù)存儲(chǔ)和管理系統(tǒng)、數(shù)據(jù)管理不僅僅是管理轉(zhuǎn)換和數(shù)據(jù)存儲(chǔ)之間的關(guān)系,有很多類型的數(shù)據(jù)庫(kù)都可以進(jìn)行管理操作,在硬盤的記憶中存儲(chǔ)不同類型的數(shù)據(jù),其最簡(jiǎn)單的形式就是數(shù)據(jù)庫(kù)的存儲(chǔ),大量的數(shù)據(jù)在數(shù)據(jù)庫(kù)系統(tǒng)中都能夠得以體現(xiàn),各種數(shù)據(jù)庫(kù)的規(guī)模在各個(gè)方面都能得到廣泛的應(yīng)用,數(shù)據(jù)庫(kù)可以完全在信息社會(huì)中有更好的發(fā)展,有效管理和利用各種信息資源的核心部分,可以通過不同的搜索條件進(jìn)行這一操作,在科學(xué)管理與決策信息系統(tǒng)的數(shù)據(jù)庫(kù)管理和辦公自動(dòng)化系統(tǒng)等,決策信息系統(tǒng)的不同,在科研管理和決策的方面也是不同的。幾乎所有的數(shù)據(jù)庫(kù)文件都可以是任何數(shù)量的任何類型的存儲(chǔ)文件夾,可以永久保存在數(shù)據(jù)庫(kù)中。在關(guān)系數(shù)據(jù)庫(kù)中,應(yīng)用自定義文件格式,設(shè)計(jì)和使用復(fù)雜的測(cè)量方法,在框架的應(yīng)用中只需要很少或幾乎不需要很復(fù)雜的方法就可以完成這一操作。
有很多方法可以保持高速緩存的數(shù)據(jù)方面,例如Cookie等等。在這里就不一一的做詳細(xì)的贅述。
四、分析總結(jié)
簡(jiǎn)單的數(shù)據(jù)傳遞不使用查詢字符串在保密方面會(huì)更方便;控制通過直接傳遞數(shù)據(jù)的量的大小,最好使用僅發(fā)送數(shù)據(jù)的形式;使用特定的會(huì)話的用戶,Cookie或文件進(jìn)行傳輸;所有用戶共享應(yīng)用程序的數(shù)據(jù),如果數(shù)據(jù)共享是一個(gè)字符串常量那么就可以使用配置文件;數(shù)據(jù)的長(zhǎng)期保存在配置文件中,可以選擇Cookie,一個(gè)數(shù)據(jù)庫(kù)或文件。
無(wú)論是值傳遞還是保存數(shù)據(jù),都有其適用條件和范圍。在實(shí)踐中,根據(jù)需要,對(duì)各種方法的優(yōu)缺點(diǎn)全面精細(xì)的分析,做出最好的選擇有相應(yīng)的取舍。不僅是為了滿足需求,并盡可能的簡(jiǎn)單的執(zhí)行這一操作,而且考慮到數(shù)據(jù)的安全性和性能的優(yōu)化性,分析和總結(jié)經(jīng)驗(yàn),才能充分理解和靈活運(yùn)用這些方法,從而更好地解決實(shí)際問題。
參考文獻(xiàn)
[1]婁月新.基于ASP.NET的網(wǎng)絡(luò)在線論壇系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].電腦知識(shí)與技術(shù),2014(05).
[2]王琛.基于ASP.NET的特價(jià)審批系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].北京交通大學(xué),2014.
[3]廖媛媛,唐振軍.基于ASP.NET的數(shù)據(jù)庫(kù)連接技術(shù)研究[J].信息技術(shù),2007(05).