国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

《ASP.NET程序設(shè)計(jì)》課程中頁面間傳值方法的探討

2017-03-21 22:59李莉森干
電腦知識(shí)與技術(shù) 2016年33期
關(guān)鍵詞:瀏覽器生命周期應(yīng)用程序

李莉+森干

摘要:該文針對(duì)《ASP.NET程序設(shè)計(jì)》課程,介紹了動(dòng)態(tài)網(wǎng)頁間傳值的不同方法,從生命周期、應(yīng)用范圍、數(shù)據(jù)集的大小和類型討論了這些方法的異同和優(yōu)缺點(diǎn),以期能夠讓學(xué)生掌握這些方法及其特點(diǎn),在實(shí)際應(yīng)用中能夠結(jié)合具體問題選擇有效的方法。

關(guān)鍵詞:ASP.NET;頁面?zhèn)髦?;QueryString;Application;Session;Cookie;Server.Transfer

中圖分類號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2016)33-0136-02

1 背景

《ASP.NET程序設(shè)計(jì)》課程是我校信息管理與信息系統(tǒng)專業(yè)的一門專業(yè)課,也是一門實(shí)踐型課程。其教學(xué)目的是培養(yǎng)學(xué)生掌握動(dòng)態(tài)網(wǎng)站的設(shè)計(jì)、開發(fā)和編程能力,熟悉動(dòng)態(tài)網(wǎng)站的開發(fā)流程,能自主開發(fā)一個(gè)簡(jiǎn)單的動(dòng)態(tài)網(wǎng)站,并進(jìn)行維護(hù)。這門課涉及的內(nèi)容豐富、知識(shí)點(diǎn)多,且知識(shí)的關(guān)聯(lián)性、實(shí)踐性和綜合性較強(qiáng)。要求授課教師不僅僅對(duì)課程內(nèi)容和教材熟悉,還要求有一定的軟件開發(fā)和設(shè)計(jì)的經(jīng)驗(yàn),通過項(xiàng)目驅(qū)動(dòng)來覆蓋知識(shí)點(diǎn),并進(jìn)行拓展,確保知識(shí)的完整性。

例如,動(dòng)態(tài)網(wǎng)站架構(gòu)時(shí),如何實(shí)現(xiàn)瀏覽器和Web服務(wù)器之間的數(shù)據(jù)交互是非常重要的,其中選擇合適的方法實(shí)現(xiàn)頁面之間一個(gè)或多個(gè)參數(shù)的傳遞尤為關(guān)鍵。當(dāng)然,ASP.NET為頁面之間的數(shù)據(jù)傳遞提供了多種不同的途徑,我們可以使用QueryString、Application、Session、Cookie和Server.Transfer等變量及其方法來實(shí)現(xiàn),但是我們應(yīng)該什么時(shí)候使用哪種方法呢?本文針對(duì)這個(gè)問題進(jìn)行了探討,并對(duì)其進(jìn)行比較分析。

2 問題描述

首先我們將問題定義為:有兩個(gè)web頁面a.aspx和b.aspx,在a.aspx中有一個(gè)textbox1和button1,在b.aspx中有一個(gè)label1。運(yùn)行時(shí),用戶在頁面a.aspx中的textbox1輸入信息后,如何實(shí)現(xiàn)單擊button1彈出b.aspx,并將textbox1中的值傳遞到label1中呢?

解決這個(gè)問題,需要考慮下面三個(gè)方面:

1)哪些用戶需要數(shù)據(jù)?

2)數(shù)據(jù)集的類型和大???

3)數(shù)據(jù)需要保持多長(zhǎng)時(shí)間?

通過分析實(shí)際問題的需求,我們就可以決定應(yīng)該使用哪種方法為ASP.NET應(yīng)用程序之間請(qǐng)求數(shù)據(jù)提供最佳的解決方案。

3 解決方法及適用情況

下面我們基于C#來闡述解決上述問題的各種方法,及其生命周期和應(yīng)用范圍。

3.1 使用QueryString

QueryString集合檢索HTTP查詢字符串中變量的值,HTTP查詢字符串由問號(hào)(?)后的值指定。

QueryString是一種最簡(jiǎn)單最常用的傳值方式,但被傳送的值會(huì)顯示URL中,對(duì)于用戶來說是可見的,因此使用這種方法時(shí),需要對(duì)敏感數(shù)據(jù)變量進(jìn)行加密。其次,QueryString中保存的數(shù)據(jù)是由單獨(dú)的用戶使用,其大小一般1KB。其生命周期可能只有一個(gè)請(qǐng)求那么短,也可能有用戶使用應(yīng)用程序的時(shí)間那么長(zhǎng)。因此,如果是傳遞一個(gè)或多個(gè)安全性要求不高或是結(jié)構(gòu)簡(jiǎn)單的數(shù)值時(shí),可以使用這個(gè)方法。

3.2 使用Application對(duì)象

Application可定義、聲明、設(shè)計(jì)“系統(tǒng)”層的變量、對(duì)象、事件處理過程,允許同一Web應(yīng)用程序的所有用戶共享其中的信息。默認(rèn)情況下,一個(gè)虛擬目錄下的所有ASP.NET文件便構(gòu)成了一個(gè)Web應(yīng)用程序。最常見的應(yīng)用就是網(wǎng)絡(luò)群聊,必須通過Application對(duì)象讓所有成員共享聊天信息及成員列表。

由于Application對(duì)象是多用戶共享的,在一個(gè)時(shí)間只有1個(gè)用戶使用,需對(duì)Application對(duì)象進(jìn)行鎖定(Lock),操作完成之后再解鎖(UnLock)。

3.3 使用Session對(duì)象

Session傳值也是常見的方式之一,與Application對(duì)象頗為類似,但Session對(duì)象是來定義、聲明、設(shè)計(jì)“用戶”層的變量、對(duì)象及事件處理過程,即Session對(duì)象的信息只適用于同一位用戶,其生存期是用戶持續(xù)請(qǐng)求的時(shí)間再加上一段時(shí)間,一般是20分鐘。當(dāng)用戶在不同頁面跳轉(zhuǎn)時(shí),存儲(chǔ)在Session對(duì)象中的用戶會(huì)話的信息不會(huì)被清除,還可以交叉?zhèn)鬟f到多個(gè)頁面,直至把Session變量的值Removed后才會(huì)消失。例如購物車、購物袋等,每一個(gè)人的預(yù)購列表會(huì)存儲(chǔ)在各自的Session變量中,不和他人共享。

使用Sessions效率很低,因?yàn)榧词褂脩敉V故褂脩?yīng)用程序后它仍然保持在內(nèi)存中一段時(shí)間,這對(duì)于非常繁忙的站點(diǎn)的可伸縮性有嚴(yán)重的影響。

對(duì)于小的數(shù)據(jù)量,使用Sessions保存只需要在用戶當(dāng)前會(huì)中的特定數(shù)據(jù),是很好的方法。但是使用Sessions效率很低,因?yàn)楫?dāng)用戶停止使用應(yīng)用程序后,它仍然在內(nèi)存中保留一段時(shí)間,這會(huì)影響站點(diǎn)的響應(yīng)效率。

3.4 使用Cookie對(duì)象

Cookie提供了一條靈活的、強(qiáng)大的維護(hù)用戶會(huì)話信息的途徑,伴隨著用戶請(qǐng)求和頁面在 Web 服務(wù)器和瀏覽器之間傳遞。其生命周期可與瀏覽器窗體一樣短,也可長(zhǎng)達(dá)數(shù)月、數(shù)年。

這個(gè)也是一種常用的方法,與Session一樣,是針對(duì)用戶而言的,但是有個(gè)本質(zhì)的區(qū)別:Cookie是存放在客戶端的,而session是存放在服務(wù)器端的。

由于cookie對(duì)象不是所有瀏覽器都支持的,而且cookie作為簡(jiǎn)單的明文文本保存在用戶的計(jì)算機(jī)中,可以被用戶禁止或刪除,因此我們不能使用cookie保存敏感的、未加密的數(shù)據(jù),同時(shí)還要考慮cookie被刪除的情況。

3.5 使用Server.Transfer方法

使用Server.Transfer方法把流程從當(dāng)前頁面引導(dǎo)到另一個(gè)頁面中,新的頁面使用前一個(gè)頁面的應(yīng)答流,所以這個(gè)方法是完全面向?qū)ο蟮模?jiǎn)潔有效。注意Server.Transfer只適合于服務(wù)器端重定向的頁面。

4 結(jié)束語

本文主要從不同方法的應(yīng)用范圍、數(shù)據(jù)類型和大小、生命周期等四個(gè)指標(biāo)對(duì)常用的5種傳值方法進(jìn)行了討論、分析,見表1。

由此可見,每一種傳值方法都有其適用范圍和條件,都有不同的生命周期,所能處理數(shù)據(jù)的類型和大小也有所不同。因此,在實(shí)際的教學(xué)或開發(fā)應(yīng)用中,我們應(yīng)該對(duì)需求進(jìn)行仔細(xì)、全面的分析,考慮數(shù)據(jù)的類型、保密性,使用范圍和保持的時(shí)間,比較不同方法的應(yīng)用效果,權(quán)衡利弊,選擇合適的方法。

參考文獻(xiàn):

[1] 郭興峰, 陳建偉. ASP.NET動(dòng)態(tài)網(wǎng)站開發(fā)基礎(chǔ)教程(C#篇)[M]. 北京: 清華大學(xué)出版社, 2006.

[2] 楊學(xué)全. Visual C#.NET Web應(yīng)用程序設(shè)計(jì)[M]. 北京: 電子工業(yè)出版社, 2007.

猜你喜歡
瀏覽器生命周期應(yīng)用程序
從生命周期視角看并購保險(xiǎn)
刪除Win10中自帶的應(yīng)用程序
民用飛機(jī)全生命周期KPI的研究與應(yīng)用
反瀏覽器指紋追蹤
企業(yè)生命周期及其管理
環(huán)球?yàn)g覽器
三星電子將開設(shè)應(yīng)用程序下載商店
微軟軟件商店開始接受應(yīng)用程序
龙川县| 镇平县| 张家口市| 洞头县| 卢龙县| 龙胜| 天台县| 永年县| 栾川县| 灵石县| 自贡市| 且末县| 兴城市| 上饶市| 宁南县| 林周县| 互助| 辛集市| 左云县| 乌恰县| 蓬溪县| 新兴县| 福清市| 临汾市| 蒲城县| 德兴市| 客服| 大荔县| 栖霞市| 铜川市| 衢州市| 贵定县| 霍林郭勒市| 巴里| 浦城县| 崇礼县| 汶上县| 夏邑县| 泸溪县| 陆川县| 固始县|