<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    emu in blogjava

      BlogJava :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
      171 隨筆 :: 103 文章 :: 1052 評(píng)論 :: 2 Trackbacks
    很多時(shí)候我們做web開(kāi)發(fā)往cookie里面存數(shù)據(jù),只是為了在不同的網(wǎng)頁(yè)之間跳轉(zhuǎn)的時(shí)候可以共享數(shù)據(jù),但是cookie里面的每個(gè)數(shù)據(jù)不管是否需要都會(huì)在每個(gè)同域的http請(qǐng)求中被發(fā)送往服務(wù)器,包括每個(gè)頁(yè)面、圖片、css、腳本或者ajax的的請(qǐng)求,這就無(wú)形中占用了多余的帶寬。更糟糕的是,一個(gè)網(wǎng)頁(yè)的cookie本來(lái)也只有有限的4k空間,一旦不小心寫(xiě)入的cookie超過(guò)了限制,就會(huì)造成原來(lái)有用的cookie丟失,這樣造成的bug非常難以追查。

    因此我們?cè)贗E下面經(jīng)常使用userdata來(lái)保存共享數(shù)據(jù)。但是在firefox下面卻一直缺乏對(duì)應(yīng)的特性。

    今天在看firefox 2.0的?的時(shí)候,驚奇的發(fā)現(xiàn)一個(gè)新特性叫做:
    Support for
    client-side session and persistent storage
    趕緊試驗(yàn)了一下,firefox2.0果然支持這個(gè)特性了。雖然還只能在session生命周期內(nèi)使用(而不像ie的userdata可以指定有效時(shí)間),但是總算解決了cookie占用的問(wèn)題了。

    以前曾經(jīng)寫(xiě)過(guò)一個(gè)只支持ie的userdata管理器,現(xiàn)在可以升級(jí)了:

    <!DOCTYPE?HTML?PUBLIC?"-//W3C//DTD?HTML?4.0?Transitional//EN">
    <HTML>
    <HEAD>
    <TITLE>?UserData?manager?</TITLE>
    <META?NAME="Generator"?CONTENT="EditPlus">
    <META?NAME="Author"?CONTENT="emu">
    <META?NAME="Keywords"?CONTENT="IE?USER?DATA?manager">
    <META?NAME="Description"?CONTENT="UserData?manager">
    </HEAD>
    <BODY>
    <SCRIPT?LANGUAGE="JavaScript">
    <!--
    var?isIE?=?!!document.all;
    if(isIE)
    document.documentElement.addBehavior(
    "#default#userdata");
    function??saveUserData(key,?value){
    ????
    var?ex;?
    ????
    if(isIE){
    ????????
    with(document.documentElement)try?{
    ????????????load(key);
    ????????????setAttribute(
    "value",?value);
    ????????????save(key);
    ????????????
    return??getAttribute("value");
    ????????}
    catch?(ex){
    ????????????alert(ex.message)
    ????????}
    ????}
    else?if(window.sessionStorage){//for?firefox?2.0+
    ????????try{
    ????????????sessionStorage.setItem(key,value)
    ????????}
    catch?(ex){
    ????????????alert(ex);
    ????????}
    ????}
    else{
    ????????alert(
    "當(dāng)前瀏覽器不支持userdata或者sessionStorage特性")
    ????}
    }

    function?loadUserData(key){
    ????
    var?ex;?
    ????
    if(isIE){
    ????????
    with(document.documentElement)try{
    ????????????load(key);
    ????????????
    return?getAttribute("value");
    ????????}
    catch?(ex){
    ????????????alert(ex.message);
    return?null;
    ????????}
    ????}
    else?if(window.sessionStorage){//for?firefox?2.0+
    ????????try{
    ????????????
    return?sessionStorage.getItem(key)
    ????????}
    catch?(ex){
    ????????????alert(ex)
    ????????}
    ????}
    else{
    ????????alert(
    "當(dāng)前瀏覽器不支持userdata或者sessionStorage特性")
    ????}
    }
    function??deleteUserData(key){
    ????
    var?ex;?
    ????
    if(isIE){
    ????????
    with(document.documentElement)try{
    ????????????load(key);
    ????????????expires?
    =?new?Date(315532799000).toUTCString();
    ????????????save(key);
    ????????}
    ????????
    catch?(ex){
    ????????????alert(ex.message);
    ????????}
    ????}
    else?if(window.sessionStorage){//for?firefox?2.0+
    ????????try{
    ????????????sessionStorage.removeItem(key)
    ????????}
    catch?(ex){
    ????????????alert(ex)
    ????????}
    ????}
    else{
    ????????alert(
    "當(dāng)前瀏覽器不支持userdata或者sessionStorage特性")
    ????}
    }?

    saveUserData(
    "emu","hello?world?!")
    alert(loadUserData(
    "emu"))
    deleteUserData(
    "emu")
    alert(loadUserData(
    "emu"))
    //-->
    </SCRIPT>
    </BODY>
    </HTML>

    這個(gè)特性不能在本地網(wǎng)頁(yè)上試驗(yàn),必須把頁(yè)面用某個(gè)服務(wù)器(apache或者iis都可以)發(fā)布后用firefox訪問(wèn)。
    posted on 2006-10-04 15:13 emu 閱讀(9186) 評(píng)論(20)  編輯  收藏

    評(píng)論

    # re: 終于盼到了,firefox支持sessionStorage了 2006-10-04 19:08 pear
    原來(lái)還有 userdata這個(gè)東東,算是長(zhǎng)見(jiàn)識(shí)了。不說(shuō)還不知道IE有這個(gè)東西。

    問(wèn)下樓主,你一般用userdata保存些什么東西??  回復(fù)  更多評(píng)論
      

    # re: 終于盼到了,firefox支持sessionStorage了 2006-10-04 20:34 冰川
    不管啦,支持!  回復(fù)  更多評(píng)論
      

    # re: 終于盼到了,firefox支持sessionStorage了 2006-10-04 21:02 emu
    @pear
    userdata可以在客戶端保存多達(dá)64k的數(shù)據(jù),可以用來(lái)保存用戶信息、操作歷史、購(gòu)物車(chē),各種各樣的數(shù)據(jù)。在關(guān)掉瀏覽器后下次在此訪問(wèn)此網(wǎng)頁(yè)的時(shí)候仍可以訪問(wèn)。  回復(fù)  更多評(píng)論
      

    # re: 終于盼到了,firefox支持sessionStorage了 2006-10-05 19:21 Alex
    userdata真是好東西 :)  回復(fù)  更多評(píng)論
      

    # re: 終于盼到了,firefox支持sessionStorage了 2006-10-07 00:18 葉子
    opera下有點(diǎn)問(wèn)題  回復(fù)  更多評(píng)論
      

    # re: 終于盼到了,firefox支持sessionStorage了 2006-10-13 17:06 Flyingis
    一般的網(wǎng)上購(gòu)物網(wǎng)站都有類(lèi)似userdata這個(gè)功能,比如新蛋、amazon等。

    但是我發(fā)現(xiàn)在新蛋www.newegg.com.cn網(wǎng)站,使用Firefox 1.5.0.7在不注冊(cè)情況下同樣可以保存我的瀏覽記錄,不知道這是怎么實(shí)現(xiàn)的?  回復(fù)  更多評(píng)論
      

    # re: 終于盼到了,firefox支持sessionStorage了 2006-10-14 17:16 emu
    新蛋的做法不是太有技術(shù)含量了。關(guān)鍵就在它寫(xiě)的 NeweggCookie 里面。每把一樣?xùn)|西放進(jìn)購(gòu)物車(chē),NeweggCookie就會(huì)長(zhǎng)一截(在&符號(hào)前面一段會(huì)增長(zhǎng))。這個(gè)懂一點(diǎn)點(diǎn)web開(kāi)發(fā)的都會(huì)了。  回復(fù)  更多評(píng)論
      

    # re: 終于盼到了,firefox支持sessionStorage了 2006-10-17 15:58 Flyingis
    @emu
    慚愧啊,自己的確沒(méi)有用到過(guò)。  回復(fù)  更多評(píng)論
      

    # ff 2.0的最新 release notes 2006-10-24 13:27 firefox
    http://en-us.www.mozilla.com/en-US/firefox/2.0/releasenotes/  回復(fù)  更多評(píng)論
      

    # re: 終于盼到了,firefox支持sessionStorage了 2007-06-25 18:16 TX同學(xué)
    用了這個(gè)東西在用戶刷新時(shí)保存數(shù)據(jù),但是不知道怎么設(shè)置讓IE在關(guān)閉瀏覽器后失效,能說(shuō)明一下么?  回復(fù)  更多評(píng)論
      

    # re: 終于盼到了,firefox支持sessionStorage了 2007-06-27 11:22 emu
    一般我都是設(shè)置一個(gè)臨時(shí)cookie來(lái)監(jiān)視ie關(guān)閉。在下次打開(kāi)的時(shí)候如果監(jiān)測(cè)不到cookie就清空數(shù)據(jù),再重設(shè)上cookie。  回復(fù)  更多評(píng)論
      

    # re: 終于盼到了,firefox支持sessionStorage了[未登錄](méi) 2007-06-28 10:33 andrew
    謝謝stone  回復(fù)  更多評(píng)論
      

    # re: 終于盼到了,firefox支持sessionStorage了 2007-07-27 17:53 瀟灑
    哈哈…… 我也是以前寫(xiě)了個(gè)只支持IE的cache類(lèi),現(xiàn)在想支持 FF ……
    一下就google到emu老大你的窩了…… 謝了!~  回復(fù)  更多評(píng)論
      

    # re: 終于盼到了,firefox支持sessionStorage了 2008-01-09 09:41 在線代理
    這個(gè)太強(qiáng)了,一定要訂購(gòu)大大的rss。
    學(xué)習(xí)了userdata。  回復(fù)  更多評(píng)論
      

    # re: 終于盼到了,firefox支持sessionStorage了[未登錄](méi) 2008-04-15 16:29 阿福
    在FF在關(guān)閉下重新打開(kāi),數(shù)據(jù)還是會(huì)丟失,在IE下倒不錯(cuò)  回復(fù)  更多評(píng)論
      

    # re: 終于盼到了,firefox支持sessionStorage了[未登錄](méi) 2008-05-03 10:17 閑耘
    學(xué)習(xí),支持。  回復(fù)  更多評(píng)論
      

    # re: 終于盼到了,firefox支持sessionStorage了 2009-02-26 16:38 小蔡
    長(zhǎng)見(jiàn)識(shí)了  回復(fù)  更多評(píng)論
      

    # re: 終于盼到了,firefox支持sessionStorage了[未登錄](méi) 2009-10-07 10:54 Robin
    如果僅僅為了session范圍的數(shù)據(jù),還不如用服務(wù)器端程序的session存儲(chǔ),省下不少問(wèn)題~
    電子商務(wù)的站點(diǎn)都是這么實(shí)現(xiàn)購(gòu)物車(chē)的吧~  回復(fù)  更多評(píng)論
      

    # re: 終于盼到了,firefox支持sessionStorage了 2009-10-12 09:24 emu
    @Robin
    呵呵,是省不少問(wèn)題,但是多出來(lái)的不少問(wèn)題和成本要等你做大系統(tǒng)的時(shí)候才會(huì)看到了  回復(fù)  更多評(píng)論
      

    # re: 終于盼到了,firefox支持sessionStorage了 2009-12-29 23:14 jacklau
    stone,那sessionStorage是存儲(chǔ)在哪里的呢??jī)?nèi)存?  回復(fù)  更多評(píng)論
      


    只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 亚洲国产精品久久66| 2021精品国产品免费观看| 免费无码一区二区| 亚洲国产精品网站在线播放| 亚洲中文字幕AV在天堂| 亚洲一区二区三区国产精品无码| 亚洲日本在线免费观看| 亚洲一卡二卡三卡四卡无卡麻豆| 亚洲一区中文字幕在线电影网 | 国产成人免费网站| 99精品全国免费观看视频 | 免费一级毛片无毒不卡| 久久久国产精品福利免费| 久久精品无码精品免费专区| 日韩av无码久久精品免费| 久视频精品免费观看99| 野花高清在线观看免费3中文| 成人免费777777| 国产jizzjizz免费看jizz| 亚洲国产一区二区视频网站| 4338×亚洲全国最大色成网站| 亚洲熟女一区二区三区| 久久亚洲美女精品国产精品| 亚洲人成免费电影| 亚洲AⅤ男人的天堂在线观看| 人成午夜免费大片在线观看| 免费国产午夜高清在线视频| 久久免费看黄a级毛片| 毛片a级毛片免费观看品善网| 国产一级淫片视频免费看| 亚洲人JIZZ日本人| 亚洲理论片在线观看| 亚洲精品人成网线在线播放va| 国产亚洲综合久久| 国产麻豆成人传媒免费观看| 在人线av无码免费高潮喷水| 亚洲精品国产精品乱码不卞 | 又大又黄又粗又爽的免费视频| 亚洲色精品vr一区二区三区| 亚洲国产精品成人精品软件| 国产成人亚洲精品91专区高清|