客戶端的js訪問cookie的方法只能訪問存儲在客戶端的cookie(使用js或session cookies存儲)。
壹般來說,只有服務器端的CGI程序(ASP,PHP,JSP)才有session session功能,用來保存用戶在網站會話過程中的活動數據信息。對於大量的靜態頁面(HTML),只能使用客戶端的cookie來保存臨時的活動數據,但是cookie的操作是壹個非常復雜的過程,遠沒有session操作那麽簡單。
因此,本文向讀者推薦壹種DHTML中的解決方案“持久化技術”,使會話功能也可以用在靜態頁面中。
持久化技術允許我們在當前會話期間將壹些數據對象保存到客戶端,減少了對服務器的訪問請求,充分發揮了客戶端計算機的數據處理能力,從而提高了整體頁面顯示效率。
Microsoft Internet Explorer 5瀏覽器和更高版本支持使用持久性技術,該技術有以下行為可供調用:
保存收藏夾—將頁面添加到收藏夾時保存頁面狀態和信息。
保存歷史記錄—保存當前會話中的頁面狀態和信息。
保存快照—保存頁面狀態,當頁面保存到硬盤時,信息仍然存在。
當用戶將網頁保存到
他們的硬盤。
UserData在當前會話中以XML格式保存頁面狀態和信息的網頁創建。
持久化技術打破了過去使用cookies和session的傳統。它繼承了過去cookies的壹些安全策略,同時增加了存儲和管理數據的能力。我們的頁面有64KB的用戶數據存儲容量,每個站點的總存儲容量限制為640KB。
持久化技術存儲的數據格式符合XML標準,所以可以使用DOM技術中的getAttribute和setAttribute方法來訪問數據。
下面是持久化技術的壹個典型應用。通過分析持久化存儲的數據,靜態頁面具有驗證功能。
實際的判斷過程是這樣的:
有三個對象:遊客V,導航頁A,內容頁c。
訪問者V只能通過導航頁A的鏈接看到內容頁C;
如果訪問者V通過其他渠道訪問內容頁面C(例如,通過其他網站的超鏈接,直接在IE地址欄輸入網址等。),內容頁C會自動提示版權信息並顯示空白頁。
具體實施步驟:
1.在“導航頁”中添加壹個樣式來定義持久類,同時添加存儲函數fnSave來授權。
& ltSTYLE & gt
。user data { behavior:URL(# default # user data);}
& lt/STYLE & gt;
& lt腳本語言= Javascript & gt
網頁編程
函數fnSave(){
opersistdiv . set attribute(" bis valid "," true ");
opersistediv . save(" oXMLStore ");
}
& lt/SCRIPT & gt;
第二,在“導航頁面”
& ltDIV CLASS = user data ID = " oPersistDiv " & gt。& lt/DIV & gt;
3.在“導航頁面”的超鏈接屬性中添加壹條語句,調用函數fnSave:
& lta href = ' red hat 2 . htm ' onmousedown = " fn save()" & gt;
接下來,將驗證功能添加到內容頁面:
第四,在“內容頁”中添加壹個樣式來定義持久類,同時添加存儲函數fnLoad來判斷合法性。
& ltSTYLE & gt
。user data { behavior:URL(# default # user data);}
& lt/STYLE & gt;
& lt腳本& gt
var bPageValid = false
函數fnLoad(){
opersistediv . load(" oXMLStore ");
if((opersistediv . get attribute(" bis valid "))& amp;& amp(opersistediv . get attribute(" bis valid ")= = " true ")){
bPass = true
網頁模板
}
否則{
bPass = false
}
opersistdiv . set attribute(" bis valid "," false ");
opersistediv . save(" oXMLStore ");
if(bPass==false){
Varerror = "來源不明,請通過授權網站訪問我們。";
alert(sError);
location . href = " about:blank ";
}
}
& lt/SCRIPT & gt;
動詞 (verb的縮寫)修改
& ltBODY onload = " fn load()" & gt;
& ltDIV CLASS = user data ID = " oPersistDiv " & gt。& lt/DIV & gt;
從上面的例子可以看出,通過持久化的使用,普通的靜態內容頁面具有了session的功能,普通的不敏感信息可以通過session完全保存在客戶端。
另外,如果妳不懂堅持的用處,也可以這麽做。您的主頁上有壹個表單,用於提交您的用戶名和密碼。如果妳把主頁改成html頁面,那沒問題,但是妳得在其他地方接收用戶名和密碼(比如logon.jsp)。表單的動作設置為logon.jsp。很簡單。用表單的動作來傳遞接受會話的地方,主頁可以是靜態的。