頁面傳值小結

2021-05-27 13:29:23 字數 2844 閱讀 2692

from表單使用:通過表單的控制項來傳遞資料,與傳統的post方法相對應,使用變化相對較大。方法優點是可以傳遞大量資料,並且可以訪問源頁面控制項中的資料;缺點是操作比較複雜,生命週期僅限於當前請求;

幾個要點:首先在源頁面中定義公共的變數和屬性.其次,在目的頁面的html層次在前台寫上

<%@ previouspagetype virtualpath="~/scrfrom.aspx" %>

後台寫上:previouspage.id(其中id就是源頁面的屬性和全域性變數)

session使用:session物件為當前使用者會話提供資訊。通過其屬性可以方便地設定和檢索asp.net會話狀態變數,這些變數的值在會話持續期間保留不變,並且可以被同乙個會話中的所有頁面訪問,這就是為頁面傳值提供了途徑和方便。

該方法的特點:(1) 使用者資料儲存在伺服器端;(2) asp.net中的session物件也可以不依賴cookie而正常工作;(3) 可以直接儲存物件,而無大小限制;(4) 有效與使用者的活動時間有關,具體為使用者活動時間+自定義延遲時間。

該方法的缺點:由於web應用程式對悲歌使用者都會生成session變數。因此他會隨著使用者數量的增多而加重伺服器的負擔。

用法:session[「id」]=123;

用的時候直接取值就好:但是用完務必給清除掉。session.remove(id); 

·      儲存的物理位置。伺服器記憶體。

·      儲存的型別限制。任意型別。

·      狀態使用的範圍。整個應用程式。

·      儲存的大小限制。任意大小。

·      生命週期。應用程式開始的時候建立(準確來說是使用者第一次請求某url的時候建立),應用程式結束的時候銷毀。

·      安全與效能。資料總是儲存在服務端,安全性比較高,但不易儲存過多資料。

·      優缺點與注意事項。檢索資料速度快,但缺乏自我管理機制,資料不會自動釋放。 

cookie :

瀏覽器一般對cookie的使用進行了一些限制:1每個域最多只能在一台使用者機器上儲存20個cookie;2每個cookie的總尺寸不能超過4096byte。3一台使用者的機器上cookie得總數量不能超過300個。

response.cookie[「id」].value=」」;

消除cookie。

response.cookie[「id」].expire=now.addday(-1); 

cache :

以其他方法不同是。該方法需要設定快取項優先順序和快取時間。因為當系統記憶體缺乏時,快取機制會自動移除很少使用或優先順序較低的項,而造成傳值失敗。

優點傳遞資料的大小和數量無限制,速度快。缺點是快取機制的操作相對比較複雜。

cache[「id」]讀或寫就行。

context:

context 物件包含與當前頁面相關的資訊,提供對整個上

下文的訪問,包括請求、響應、以及上文中的session 和

從而實現頁面間的傳值。

與使用 form 的方法類似,該方法也能保持大量的資料,

缺點也相同,但使用方法相對比較簡單。示例如下:

src.aspx:

context.items["id"]=textbox1.text;

server.transfer("dst.aspx");

dst.aspx:

label1.text=context.items["id"].tostring();

context.items.remove("id"); //移除項 

viewstate:

viewstate 是asp.net 用來在同一頁面的多個請求之間

儲存和還原伺服器控制項檢視狀態的一種機制。與傳統的「同

一頁面」不同,asp.net 中「同一頁面」的每乙個請求都會

導致伺服器重新生成該頁面,但是新生成的頁面並不包含原

來頁面的資料。viewstate 的任務就是儲存原來頁面中伺服器

控制項檢視狀態的資料供新頁面使用。從這個意義上講,

viewstate 也可以看作是一種在頁面間傳遞資料的工具。

viewstate 的工作原理是:作為乙個隱藏的窗體欄位在客

戶端和伺服器之間傳遞,可見,濫用viewstate 會加重頁面

回傳的負擔,從而降低應用程式的效能。此外,viewstate 也

能被控制項、頁面和應用程式禁用。示例如下(在同一頁面中):

viewstate["id"]=textbox1.text; //資料儲存

label1.text=viewstate["id"].tostring(); //資料取出

viewstate.remove("id"); //資料移除 

傳值方法比較

傳值方法

生命週期

應用範圍

資料型別

資料大小

使用querystring

與目標頁有關

單使用者字串

1kb使用form

當前請求

單使用者全部

不限使用session

當前會話

單使用者全部

不限應用程式

全域性全部

不限使用cookie

可自定義

單使用者字串

4kb使用static

變數應用程式

全域性全部

不限使用cache

可自定義全域性

全部不限

使用context

當前請求

單使用者全部

不限使用viewstate

當前頁單使用者

全部不限

使用web.config 和machine.config

可永久全域性

字串不限

使用資料庫或檔案

永久全域性

全部不限

asp頁面傳值小結

按照跳轉頁面的方式,一一來總結 首先說接受頁面獲取引數的方式 1 request.querystring。只要url中含有引數,即可傳遞 則用request.querystring label 即可得到引數值 2 page.previouspage.findcontrol。比如原頁面的控制項為 則接...

父子頁面傳值和子兄弟頁面傳值

前言 我是用的layer彈出框整的layer父子頁面 父 子 子 父 子彈窗給父頁面元素賦值 parent.parentinput val 這是從彈窗傳遞過來的資料 子彈窗呼叫父頁面方法 window.parent.childinvokermethod 子彈窗獲取父頁面元素的值 window.par...

子頁面傳值與父頁面傳值(上)

這樣的乙個問題 在父頁面中跳轉到子頁面後,獲取到輸入的值後傳遞給父親頁面,然後在父頁面上賦值給父頁面上得某個控制項 這裡提供兩種方法,一種是js,另外一種是ajax的 js方法 父親頁面上的js 傳遞值給子頁面 function getinfo 修改,選中並且返回值給父頁面 function com...