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

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

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

    emu in blogjava

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

    因此我們在IE下面經常使用userdata來保存共享數據。但是在firefox下面卻一直缺乏對應的特性。

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

    以前曾經寫過一個只支持ie的userdata管理器,現在可以升級了:

    <!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(
    "當前瀏覽器不支持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(
    "當前瀏覽器不支持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(
    "當前瀏覽器不支持userdata或者sessionStorage特性")
    ????}
    }?

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

    這個特性不能在本地網頁上試驗,必須把頁面用某個服務器(apache或者iis都可以)發布后用firefox訪問。
    posted on 2006-10-04 15:13 emu 閱讀(9184) 評論(20)  編輯  收藏

    評論

    # re: 終于盼到了,firefox支持sessionStorage了 2006-10-04 19:08 pear
    原來還有 userdata這個東東,算是長見識了。不說還不知道IE有這個東西。

    問下樓主,你一般用userdata保存些什么東西??  回復  更多評論
      

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

    # re: 終于盼到了,firefox支持sessionStorage了 2006-10-04 21:02 emu
    @pear
    userdata可以在客戶端保存多達64k的數據,可以用來保存用戶信息、操作歷史、購物車,各種各樣的數據。在關掉瀏覽器后下次在此訪問此網頁的時候仍可以訪問。  回復  更多評論
      

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

    # re: 終于盼到了,firefox支持sessionStorage了 2006-10-07 00:18 葉子
    opera下有點問題  回復  更多評論
      

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

    但是我發現在新蛋www.newegg.com.cn網站,使用Firefox 1.5.0.7在不注冊情況下同樣可以保存我的瀏覽記錄,不知道這是怎么實現的?  回復  更多評論
      

    # re: 終于盼到了,firefox支持sessionStorage了 2006-10-14 17:16 emu
    新蛋的做法不是太有技術含量了。關鍵就在它寫的 NeweggCookie 里面。每把一樣東西放進購物車,NeweggCookie就會長一截(在&符號前面一段會增長)。這個懂一點點web開發的都會了。  回復  更多評論
      

    # re: 終于盼到了,firefox支持sessionStorage了 2006-10-17 15:58 Flyingis
    @emu
    慚愧啊,自己的確沒有用到過。  回復  更多評論
      

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

    # re: 終于盼到了,firefox支持sessionStorage了 2007-06-25 18:16 TX同學
    用了這個東西在用戶刷新時保存數據,但是不知道怎么設置讓IE在關閉瀏覽器后失效,能說明一下么?  回復  更多評論
      

    # re: 終于盼到了,firefox支持sessionStorage了 2007-06-27 11:22 emu
    一般我都是設置一個臨時cookie來監視ie關閉。在下次打開的時候如果監測不到cookie就清空數據,再重設上cookie。  回復  更多評論
      

    # re: 終于盼到了,firefox支持sessionStorage了[未登錄] 2007-06-28 10:33 andrew
    謝謝stone  回復  更多評論
      

    # re: 終于盼到了,firefox支持sessionStorage了 2007-07-27 17:53 瀟灑
    哈哈…… 我也是以前寫了個只支持IE的cache類,現在想支持 FF ……
    一下就google到emu老大你的窩了…… 謝了!~  回復  更多評論
      

    # re: 終于盼到了,firefox支持sessionStorage了 2008-01-09 09:41 在線代理
    這個太強了,一定要訂購大大的rss。
    學習了userdata。  回復  更多評論
      

    # re: 終于盼到了,firefox支持sessionStorage了[未登錄] 2008-04-15 16:29 阿福
    在FF在關閉下重新打開,數據還是會丟失,在IE下倒不錯  回復  更多評論
      

    # re: 終于盼到了,firefox支持sessionStorage了[未登錄] 2008-05-03 10:17 閑耘
    學習,支持。  回復  更多評論
      

    # re: 終于盼到了,firefox支持sessionStorage了 2009-02-26 16:38 小蔡
    長見識了  回復  更多評論
      

    # re: 終于盼到了,firefox支持sessionStorage了[未登錄] 2009-10-07 10:54 Robin
    如果僅僅為了session范圍的數據,還不如用服務器端程序的session存儲,省下不少問題~
    電子商務的站點都是這么實現購物車的吧~  回復  更多評論
      

    # re: 終于盼到了,firefox支持sessionStorage了 2009-10-12 09:24 emu
    @Robin
    呵呵,是省不少問題,但是多出來的不少問題和成本要等你做大系統的時候才會看到了  回復  更多評論
      

    # re: 終于盼到了,firefox支持sessionStorage了 2009-12-29 23:14 jacklau
    stone,那sessionStorage是存儲在哪里的呢?內存?  回復  更多評論
      


    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 97无码免费人妻超级碰碰夜夜| 一区二区三区观看免费中文视频在线播放 | 久久精品电影免费动漫| 亚洲AV综合色区无码二区爱AV| 国产免费一区二区三区VR| 两个人看的www高清免费视频| 亚洲国产视频一区| 亚洲午夜成人精品电影在线观看| 久久99精品视免费看| 色欲aⅴ亚洲情无码AV| 亚洲日本一区二区| 亚洲精品无码专区2| 黄页网站免费观看| 国产一级一毛免费黄片| 国产精品亚洲精品| 亚洲欧洲成人精品香蕉网| 热久久精品免费视频| 日日麻批免费40分钟无码| 国产精品亚洲五月天高清| 亚洲视频日韩视频| 亚洲无线码在线一区观看| 国内一级一级毛片a免费| 亚洲免费视频在线观看| 特级做a爰片毛片免费看| 亚洲AV无码一区二区三区牛牛| 亚洲精品卡2卡3卡4卡5卡区| 曰皮全部过程视频免费国产30分钟| 污视频在线观看免费| 一个人看的免费视频www在线高清动漫 | 亚洲av永久无码精品漫画| 四虎影院永久免费观看| 免费阿v网站在线观看g| 免费国产成人α片| v片免费在线观看| 亚洲成熟丰满熟妇高潮XXXXX| 亚洲成在人线电影天堂色| 亚洲AV无码不卡在线播放| 在线亚洲午夜理论AV大片| 亚洲精品第一国产综合精品99| 成人免费视频一区二区三区| 久久国产免费福利永久|