页面增加html,为静态页面HTML增加session功能
一般來說,只有服務(wù)器端的CGI程序(ASP、PHP、JSP)具有session會話功能,用來保存用戶在網(wǎng)站期間(會話)的活動數(shù)據(jù)信息,而對于數(shù)量眾多的靜態(tài)頁面(HTML)來說,只能使用客戶端的cookies來保存臨時(shí)活動數(shù)據(jù),但對于cookies的操作是個(gè)很煩瑣的過程,遠(yuǎn)沒有對于session操作那樣簡便。
為此,本文向讀者推薦一種在DHTML中的解決方案“Persistence技術(shù)”,使得在靜態(tài)頁面中也能使用session會話功能。
使用保持(Persistence)技術(shù)讓我們能夠在當(dāng)前會話過程中保存一些數(shù)據(jù)對象到客戶端,它減少了對服務(wù)器的訪問請求,充分發(fā)揮了客戶端計(jì)算機(jī)的數(shù)據(jù)處理能力,從而也整體提升了頁面顯示效率。
Microsoft Internet Explorer 5瀏覽器和以后的版本都支持使用狀態(tài)保持(Persistence)技術(shù),它有以下幾種行為可供調(diào)用:
saveFavorite—當(dāng)頁面被添加到收藏夾時(shí)保存頁面狀態(tài)和信息
saveHistory—在當(dāng)前會話中保存頁面狀態(tài)和信息
saveSnapshot—當(dāng)頁面被保存到硬盤時(shí),保存頁面狀態(tài)和信息persists
page state and information directly in the page when users save the Web page to
their hard disk.
userData—在當(dāng)前會話中用XML格式保存頁面狀態(tài)和信息 網(wǎng)頁制作
Persistence技術(shù)打破了以前使用使用cookies和session的傳統(tǒng),它繼承了以前cookies的一些安全策略,同時(shí)也增加了存儲和管理數(shù)據(jù)的能力。我們的每個(gè)頁面有64KB的用戶數(shù)據(jù)存儲容量,對于每個(gè)站點(diǎn)總計(jì)有640KB的存儲上限。
Persistence技術(shù)存儲的數(shù)據(jù)格式符合XML標(biāo)準(zhǔn),所以可以使用DOM技術(shù)中的getAttribute和setAttribute方法來存取數(shù)據(jù)。
下面是一個(gè)Persistence技術(shù)的典型應(yīng)用,通過對Persistence存儲數(shù)據(jù)的分析,使得靜態(tài)頁面具有驗(yàn)證功能。
實(shí)際判斷過程是這樣的:
有三個(gè)對象:游客V、導(dǎo)航頁面A、內(nèi)容頁面C
游客V只能通過導(dǎo)航頁面A的鏈接才能看到內(nèi)容頁面C;
如果游客V是通過其它途徑來訪問內(nèi)容頁面C(比如通過其它網(wǎng)站的超鏈接、直接在IE地址欄中輸入網(wǎng)址訪問等),內(nèi)容頁面C將自動提示版權(quán)信息,顯示空白頁。
具體實(shí)現(xiàn)步驟:
一、在“導(dǎo)航頁面”中加入一個(gè)STYLE用來定義persistent類,同時(shí)加入存儲函數(shù)fnSave用來授權(quán)。
.userData {behavior:url(#default#userdata);}
網(wǎng)頁編程
function fnSave(){
oPersistDiv.setAttribute("bIsValid","true");
oPersistDiv.save("oXMLStore");
}
二、在“導(dǎo)航頁面”的
和區(qū)域中定義一個(gè)層用來標(biāo)識Persistence對象三、在“導(dǎo)航頁面”的超鏈接屬性中加入一條語句用來調(diào)用函數(shù)fnSave:
接下來,為“內(nèi)容頁面”加入驗(yàn)證功能:
四、在“內(nèi)容頁面”中加入一個(gè)STYLE用來定義persistent類,同時(shí)加入存儲函數(shù)fnLoad用來判斷合法性。
.userData {behavior:url(#default#userdata);}
var bPageValid=false;
function fnLoad(){
oPersistDiv.load("oXMLStore");
if((oPersistDiv.getAttribute("bIsValid"))&&(oPersistDiv.getAttribute("bIsValid")=="true")){
bPass=true;
網(wǎng)頁模板
}
else{
bPass=false;
}
oPersistDiv.setAttribute("bIsValid","false");
oPersistDiv.save("oXMLStore");
if(bPass==false){
var sError="來源不明,請您通過授權(quán)網(wǎng)站訪問我們.";
alert(sError);
location.href="about:blank";
}
}
五、修改“內(nèi)容頁面”的
區(qū)域如下:從以上范例可看出,通過persistence的使用,使得普通的靜態(tài)內(nèi)容頁面具有了session功能,一般的不敏感信息完全可以通過session保存在客戶端。
使用多個(gè)帶有session功能的靜態(tài)頁面可以完成眾多復(fù)雜任務(wù),如虛擬購物車,高級搜索引擎等。同時(shí),由于將以前服務(wù)器端承擔(dān)的部分session任務(wù)轉(zhuǎn)移到客戶端,減少了數(shù)據(jù)交互量,大大降低了服務(wù)器的負(fù)擔(dān)。
總結(jié)
以上是生活随笔為你收集整理的页面增加html,为静态页面HTML增加session功能的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python canvas画移动物体_如
- 下一篇: HTML 标记一览