針對不同的Cookie做頁面快取

2021-09-08 23:04:54 字數 1599 閱讀 4033

有時我們需要為pc瀏覽器及移動瀏覽器生成不同的頁面,為了提高效能,不能每次請求都去判斷user-agent,通常用乙個 cookie 標記一下客戶端是否是移動客戶端,這樣只需要讀取這個 cookie 的值就知道這個請求是否是移動端。

這裡主要通過 outputcachebycustom 來實現對不同的 cookie 值生成不同的頁面,具體做法也比較簡單:

這個函式接受兩個引數,第乙個是 system.web.httpcontext 物件,包含了對話的上下文,第二個是 string 型別的,使用者判斷具體採用使用者定義的哪種快取方案。

以上兩步就可以了,當然也可以將快取方案寫進 web.config 配置檔案中:

<

system.web

>

<

caching

>

<

outputcachesettings

>

<

outputcacheprofiles

>

<

clear

/>

<

add

varybycustom

="ismobile"

duration

="60"

name

="changebydevice"

location

="server"

/>

outputcacheprofiles

>

outputcachesettings

>

caching

>

system.web

>

在 view 相應的位置只需指定 outputcache 的 cacheprofile

public

class

cachecontroller : controller

}

開啟 http://localhost/cache/index

output:2014/10/26 13:58:01

在控制台修改 ismobile 的 cookie 值

var date = new

date();

var expiredays = 100;

date.settime(date.gettime() + expiredays*24*3600*1000);

document.cookie = "ismobile=1; path=/; expires=" + date.togmtstring();

重寫開啟 http://localhost/cache/index

output:2014/10/26 13:58:16

針對不同的Cookie做頁面快取

有時我們需要為pc瀏覽器及移動瀏覽器生成不同的頁面,為了提高效能,不能每次請求都去判斷user agent,通常用乙個 cookie 標記一下客戶端是否是移動客戶端,這樣只需要讀取這個 cookie 的值就知道這個請求是否是移動端。這裡主要通過 outputcachebycustom 來實現對不同的...

同站點不同頁面 Cookie 攜帶問題

最近在做的乙個專案,是由幾個模組組成的。其中有幾個模組需要在其他專案中也用到,所以單獨開發,發布的時候放在本專案的根目錄下。系統做了許可權認證,在登入後返回 token 存放在 cookie 中。問題是 和登入做一起的幾個模組沒有問題,但是其他獨立的在請求資源的時候沒有攜帶 cookie。很是鬱悶。...

在不同頁面設定與獲取cookie值的例項

encoding utf 8 import sys reload sys sys.setdefaultencoding utf8 import tornado.web import tornado.ioloop class we tornado.web.requesthandler def get ...