css&javascript Application、Session、cookie 三大傳值簡易說明
其實這三個,每一個都可以獨立一章來寫
由於本人太過於懶散事務煩雜,所以就重點列列
Application
存在伺服器上,20分鐘沒人用就消失
不同使用者間可以呼叫同一個Application
Session
存在伺服器上,每個使用者都會取得獨立的Session
撰寫容易,取得方便,也有20分鐘上限
cookie
存在使用者的電腦上,不佔伺服器空間
有時間限制,不設定時間就像一次性的Session
斷線消失
其實很簡單,適合用在那裡就容易分得出差別
Application:用在記錄「訪客次數」,每個使用者連入就加1
Session:購物車、使用者登入、email 等等,不同使用者有各自已值
cookie:同上,好處是不佔伺服器的記憶體,撰寫上稍稍麻煩
程式碼:
由於本人
Application
存在伺服器上,20分鐘沒人用就消失
不同使用者間可以呼叫同一個Application
Session
存在伺服器上,每個使用者都會取得獨立的Session
撰寫容易,取得方便,也有20分鐘上限
cookie
存在使用者的電腦上,不佔伺服器空間
有時間限制,不設定時間就像一次性的Session
斷線消失
其實很簡單,適合用在那裡就容易分得出差別
Application:用在記錄「訪客次數」,每個使用者連入就加1
Session:購物車、使用者登入、email 等等,不同使用者有各自已值
cookie:同上,好處是不佔伺服器的記憶體,撰寫上稍稍麻煩
程式碼:
protected void Page_Load(object sender, EventArgs e) { //----------------------------------------------------------------- /*Application * 1.存在在伺服器的紀憶體中,20分鐘後沒有人使用,自動消失 * 2.可與其他網頁間傳遞數值 * 3.所有連入網站的使用者都可以共用此值 * * 適合寫在:來訪人數,每次有人來就加1 */ if (Application["myNum"] ==null) Application.Add("myNum",10); else Application["myNum"] =(int)Application["myNum"] +10; Label1.Text = Application["myNum"].ToString(); //----------------------------------------------------------------- /*Session * 1.存在在伺服器的紀憶體中,20分鐘沒有使用一樣會消失 * 2.每個Session對應各自的使用者 * 3.可與其他網頁間傳遞數值 * 4.使用者間不可共用 * 5.瀏覽器會使用同個Session * * 適合寫在:購物車、信箱、登入資訊等等 * 不同使用者會有不同的Session * 但寫時要注意記憶體的問題,若Session過大會造成效率降低 */ if (Session["myNum"] == null) Session["myNum"] = 10; else Session["myNum"] = (int)Session["myNum"] + 10; Label2.Text = Session["myNum"].ToString(); //----------------------------------------------------------------- if (Request.Cookies["MyC"] != null)//如果有值就放入label3中 Label3.Text = Request.Cookies["MyC"].Value; } protected void Button1_Click(object sender, EventArgs e) { //cookie是存在於客戶端,要取得cookie的值需要向客戶端Request //若cookie沒有設定日期,則像是一次性Session,一但關閉網頁就消失 //通常設定日期往往都天荒地老:new DateTime(9999,12,31) //cookie是以key對應value,也可以是個集合values //若要改寫,以同樣名稱的key以Add方式寫回去會自動取代 //cookie的值都是String,沒有int數字沒有圖,只有String if (Request.Cookies["MyC"] == null) { //向使用者的電腦提出需求,看有沒有叫"MyC"的cookies //如果是空值,表示沒有,則new一個response回去 HttpCookie cookie = new HttpCookie("MyC", (100).ToString()); cookie.Expires =new DateTime(9999,12,31);//設定到期日 Response.Cookies.Add(cookie); Label3.Text = Request.Cookies["MyC"].Value; } else { //如果不是空值表示有,取出cookie的值加100並add回去 int aa = int.Parse(Request.Cookies["MyC"].Value); aa += 100; HttpCookie cookie = new HttpCookie("MyC", aa.ToString()); cookie.Expires = new DateTime(9999, 12, 31); Response.Cookies.Add(cookie); Label3.Text = aa.ToString(); } }
留言
張貼留言