乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      從javascript讀取cookies說開去:談談網頁的本地化存儲

       昵稱10504424 2013-12-24

      學習要點:
      1.cookies

      2.cookies 局限性

      3.其他存儲

      隨著 Web 越來越復雜,開發(fā)者急切的需要能夠本地化存儲的腳本功能。這個時候,第一個出現(xiàn)的方案:cookie 誕生了。cookie 的意圖是:在本地的客戶端的磁盤上以很小的文件形式保存數(shù)據。
      一.Cookies
      cookies 也叫 HTTP Cookies, 最初是客戶端與服務器端進行會話使用的。 比如, 會員登錄,下次回訪網站時無須登錄了; 或者是購物車, 購買的商品沒有及時付款, 過兩天發(fā)現(xiàn)購物車
      里還有之前的商品列表。
      HTTP Cookies 要求服務器對任意 HTTP 請求發(fā)送 Set-Cookie,因此,Cookie 的處理原則上需要在服務器環(huán)境下進行。當然,現(xiàn)在大部分瀏覽器在客戶端也能實現(xiàn) Cookie 的生成和獲取。(目前 Chrome 不可以在客戶端操作,其他瀏覽器均可)
      cookies 的組成
      cookies 由名/值對形式的文本組成:name=value。完整格式為:

      name=value; [expires=date]; [path=path]; [domain=somewhere.com]; [secure]  

      中括號是可選,name=value 是必選。

      document.cookie = 'user=' + encodeURIComponent('ranzige'); //編碼寫入   
      alert(decodeURIComponent(document.cookie)); //解碼讀取  

      expires=date 失效時間,如果沒有聲明,則為瀏覽器關閉后即失效。聲明了失效時間,那么時間到期后方能失效。

      var date = new Date(); //創(chuàng)建一個   
      date.setDate(date.getDate() + 7);
      document.cookie = "user= " + encodeURIComponent('ranzige') +";expires=" + date;  

      PS: 可以通過 Firefox 瀏覽器查看和驗證失效時間。 如果要提前刪除 cookie 也非常簡單,只要重新創(chuàng)建 cookie
      把時間設置當前時間之前即可:date.getDate() - 1 或 new Date(0)。
      path=path 訪問路徑, 當設置了路徑,
      那么只有設置的那個路徑文件才可以訪問 cookie。

      var path = '/E:/%E5%A4%87%E8%AF%BE%E7%AC%94%E8%AE%B0/JS1/29/demo';
      document.cookie = "user= " + encodeURIComponent('ranzige') + ";path=" + path;  

      PS:為了操作方便,我直接把路徑復制下來,并且增加了一個目錄以強調效果。
      domain=domain
      訪問域名,用于限制只有設置的域名才可以訪問,那么沒有設置,會默認限制為創(chuàng)建 cookie 的域名。

      var domain = 'cnblogs.com';
      document.cookie = "user= " + encodeURIComponent('ranzige') + ";domain=" + domain;  

      PS:如果定義了 cnblogs.com,那么在這個域名下的任何網頁都可訪問,如果定義了dotnet.cnblogs.com,那么只能在這個二級域名訪問該
      cookie,而主域名和其他子域名則不能訪問。
      PS:設置域名,必須在當前域名綁定的服務器上設置,如果在 cnblogs.com
      服務器上隨意設置其他域名,則會無法創(chuàng)建 cookie。
      secure 安全設置,指明必須通過安全的通信通道來傳輸(HTTPS)才能獲取 cookie。

      document.cookie = "user= " + encodeURIComponent('ranzige') + ";secure";  

      PS:https 安全通信鏈接需要單獨配置。
      JavaScript 設置、 讀取和刪除并不是特別的直觀方便,
      我們可以封裝成函數(shù)來方便調用。
      //創(chuàng)建 cookie

      復制代碼
      function setCookie(name, value, expires, path, domain, secure) {
      var cookieText = encodeURIComponent(name) + '=' + encodeURIComponent(value);
      if (expires instanceof Date) {
      cookieText += '; expires=' + expires;
      }
      if (path) {
      cookieText += '; expires=' + expires;
      }
      if (domain) {
      cookieText += '; domain=' + domain;
      }
      if (secure) {
      cookieText += '; secure';
      }
      document.cookie = cookieText;
      }  
      復制代碼

      //獲取 cookie

      復制代碼
      function getCookie(name) {
      var cookieName = encodeURIComponent(name) + '=';
      var cookieStart = document.cookie.indexOf(cookieName);
      var cookieValue = null;
      if (cookieStart > -1) {
      var cookieEnd = document.cookie.indexOf(';', cookieStart);
      if (cookieEnd == -1) {
      cookieEnd = document.cookie.length;
      }
      cookieValue = decodeURIComponent(
      document.cookie.substring(cookieStart + cookieName.length, cookieEnd));
      }
      return cookieValue;
      }  
      復制代碼

      //刪除 cookie

      function unsetCookie(name) {
      document.cookie = name + "= ; expires=" + new Date(0);
      }  

      //失效天數(shù),直接傳一個天數(shù)即可

      復制代碼
      function setCookieDate(day) {
      if (typeof day == 'number' && day > 0) {
      var date = new Date();
      date.setDate(date.getDate() + day);
      } else {
      throw new Error('傳遞的 day 必須是一個天數(shù),必須比 0 大');
      }
      return date;
      }  
      復制代碼

      二.cookie 局限性
      cookie 雖然在持久保存客戶端用戶數(shù)據提供了方便, 分擔了服務器存儲的負擔。
      但是還有很多局限性的。
      第一:每個特定的域名下最多生成 20 個 cookie(根據不同的瀏覽器有所區(qū)別) 。
      1.IE6 或更低版本最多 20 個
      cookie
      2.IE7 和之后的版本最多可以 50 個 cookie。 IE7 最初也只能 20 個,
      之后因被升級不定后增加了。
      3.Firefox 最多 50 個 cookie
      4.Opera 最多 30 個 cookie
      5.Safari
      和 Chrome 沒有做硬性限制。
      PS:為了更好的兼容性,所以按照最低的要求來,也就是最多不得超過 20 個 cookie。
      當超過指定的
      cookie 時,瀏覽器會清理掉早期的 cookie。IE 和 Opera 會清理近期最少使用的 cookie,F(xiàn)irefox 會隨機清理
      cookie。
      第二:cookie 的最大大約為 4096 字節(jié)(4k),為了更好的兼容性,一般不能超過 4095 字節(jié)即可。
      第三:cookie
      存儲在客戶端的文本文件,所以特別重要和敏感的數(shù)據是不建議保存在cookie
      的。比如銀行卡號,用戶密碼等。
      三.其他存儲
      IE 提供了一種存儲可以持久化用戶數(shù)據,叫做 userData,從
      IE5.0 就開始支持。每個數(shù)據最多 128K,每個域名下最多 1M。這個持久化數(shù)據存放在緩存中,如果緩存沒有清理,那么會一直存在。

      復制代碼
      <div style="behavior:url(#default#userData)" id="box"></div>
      addEvent(window, 'load', function () {
      var box = document.getElementById('box');
      box.setAttribute('name', encodeURIComponent('chaoyi'));
      box.expires = setCookieDate(7);
      box.save('bookinfo');
      //box.removeAttribute('name'); //刪除 userDate   
      //box.save('bookinfo');   
      box.load('bookinfo');
      alert(decodeURIComponent(box.getAttribute('name')));
      });  
      復制代碼

      PS:這個數(shù)據文件也是保存在 cookie 目錄中,只要清除 cookie 即可。如果指定過期日期,則到期后自動刪除,如果沒有指定就是永久保存。
      Web
      存儲
      在比較高版本的瀏覽器,JavaScript 提供了 sessionStorage 和 globalStorage。在 HTML5中提供了
      localStorage 來取代 globalStorage。 而瀏覽器最低版本為: IE8+、 Firefox3.5+、 Chrome4+和
      Opera10.5+。
      PS:由于這三個對瀏覽器版本要求較高,我們就只簡單的在 Firefox
      了解一下,有興趣的可以通過關鍵字搜索查詢。
      //通過方法存儲和獲取

      sessionStorage.setItem('name', 'ranzge');
      alert(sessionStorage.getItem('name'));  

      //通過屬性存儲和獲取

      sessionStorage.book = 'ranzige';
      alert(sessionStorage.book);  

      //刪除存儲

      sessionStorage.removeItem('name');  

      PS: 由于 localStorage 代替了 globalStorage, 所以在 Firefox、 Opera 和 Chrome
      目前的最新版本已不支持。
      //通過方法存儲和獲取

      localStorage.setItem('name', 'ranzige');
      alert(localStorage.getItem('name'));  

      //通過屬性存儲和獲取

      localStorage.book = 'ranzige';
      alert(localStorage.book);  

      //刪除存儲

      localStorage.removeItem('name');  

      PS:這三個對象都是永久保存的,保存在緩存里,只有手工刪除或者清理瀏覽器緩存方可失效。 在容量上也有一些限制, 主要看瀏覽器的差異, Firefox3+、
      IE8+、 Opera 為 5M,Chrome 和 Safari 為 2.5M。

      昵稱:技術狂
      園齡:2年
      粉絲:12
      關注:0
      +加關注

      搜索

      常用鏈接

      • 我的隨筆
      • 我的評論
      • 我的參與
      • 最新評論
      • 我的標簽

      我的標簽

      • cnblogs(18)
      • cnblogs.com(18)
      • 博客園(18)
      • jquery(11)
      • ajax(4)
      • css(4)
      • google日歷(2)
      • HTML(2)
      • iframe(2)
      • 提高(2)
      • 更多

      隨筆檔案

      • 2013年12月 (28)
      • 2013年11月 (22)
      • 2011年12月 (2)

      最新評論

      • 1. Re:兩段超簡單jquery代碼解決iframe自適應高度問題(不用判斷瀏覽器高度)
      • 為什么加30就可以自適應了
      • --代碼三郎
      • 2. Re:Jquery插件開發(fā)學習筆記:簡單地入門方法
      • 請教一下樓主:什么叫"支持jQuery選擇器.".500) this.width=500;"/>還好這個評論可以自己刪除和修改,媽的上傳圖片時,不小心把工資單給傳上去了,好險.
      • --思思博士
      • 3. Re:【Multiple backgrounds】用CSS3實現(xiàn)網頁多重背景
      • 多多分享……
      • --淡淡明月
      • 4. Re:耳目一新!令人膜拜的牛人簡歷!厲害的攻城師啊
      • 就想知道余博雅的那個簡歷上的氣泡效果,用css怎么做
      • --v流年v
      • 5. Re:jquery選擇器的實現(xiàn)流程簡析及提高性能建議!
      • 不錯
      • --月雪維杰
      • 6. Re:在asp.net中使用jQuery實現(xiàn)類似QQ網站的圖片切割效果
      • demo無法下載
      • --ccmyfriend
      • 7. Re:8個應該去逛逛JQuery的學習網站
      • 木有中文的,郁悶了
      • --shootingstar
      • 8. Re:[好文翻譯]WEB前端性能優(yōu)化的14條規(guī)則
      • 現(xiàn)在好像移動網站不多了,都是APP或者混合模式的APP,不過講的都是可用的方法
      • --zmcnxd
      • 9. Re:分享七個絢麗奪目的JQuery導航(還有蘋果、豬八戒等),有圖有真相
      • 都是三四年前的東東,沒新意
      • --新阿倫
      • 10. Re:一款超炫的jquery圖片播放插件[Cloud Carousel]
      • 非常非常老的插件了。
      • --新阿倫
      • 11. Re:巧妙利用函數(shù)的惰性載入提高javascript 代碼性能
      • 第一種在函數(shù)體內有函數(shù)自身的字面引用, 如果要修改函數(shù)命名會很麻煩. 還是第二種更好.
      • --whzx5byb
      • 12. Re:超酷百度百科的頁面導航效果,輕松制作---有圖有真相!
      • 圖片和Css沒得下載??? 哪里有附件???
      • --念時
      • 13. Re:巧妙利用函數(shù)的惰性載入提高javascript 代碼性能
      • 恩,不錯
      • --zmcnxd
      • 14. Re:超簡單!80行代碼實現(xiàn)Google日歷(拖放、移動、AJAX)
      • DayPilot確認挺好用的 坐等7.5開源
      • --liuhz
      • 15. Re:簡單方法使頁面回發(fā)后保持焦點
      • 這樣不好,這樣不好!
        這樣是將整個控件存入到session中,而僅僅只是為了一個焦點。
        如果有10個控件,焦點肯定是在其中的某個控件中,這樣你讓其它沒有焦點卻也存入session的控件情何以堪。
        而且貌似也沒人用session干這個呀?。。?
      • --歪脖子
      • 16. Re:超簡單!80行代碼實現(xiàn)Google日歷(拖放、移動、AJAX)
      • @技術狂
        1.LZ這話是不是把代碼封裝到一個cs里面引用,豈不是需要兩行實現(xiàn)了?
        2.上一句開個玩笑,可以實時css3和jquery,幾行就搞定了拖放,至于日志,引用一下插件.
      • --flyher
      • 17. Re:80行代碼實現(xiàn)Google日歷(拖放、移動、AJAX)
      • 頭像不錯!
      • --美洲象
      • 18. Re:簡單方法使頁面回發(fā)后保持焦點
      • 太笨拙了,每次按鍵都要觸發(fā)服務器事件,都有一次服務端交互,另外,20個控件你難道要寫20次事件,誤人子弟

        session 里面保存的是控件對象,實際應用中不知道是否可行,還是撤出主頁吧
      • --James-yu

      閱讀排行榜

      • 1. 每天前進一厘米-如何快速迎頭趕上(919)
      • 2. 超簡單!80行代碼實現(xiàn)Google日歷(拖放、移動、AJAX)(568)
      • 3. 超酷百度百科的頁面導航效果,輕松制作---有圖有真相!(441)
      • 4. 超級簡單的jquery操作表格(添加/刪除行、添加/刪除列)(362)
      • 5. 超級簡單!80行代碼實現(xiàn)Google日歷(拖放、移動、AJAX)(350)
      • 6. 8個應該去逛逛JQuery的學習網站(350)
      • 7. 分享七個絢麗奪目的JQuery導航(還有蘋果、豬八戒等),有圖有真相(339)
      • 8. 深入理解jQuery中$.get、$.post、$.getJSON和$.ajax的用法(309)
      • 9. [JQuery插件系列]-強烈推薦10個非常不錯的jQuery工具提示插件(290)
      • 10. 耳目一新!令人膜拜的牛人簡歷!厲害的攻城師啊(278)
      • 11. 【葵花寶典】程序員技術練級攻略(轉)(269)
      • 12. [asp.net入門]利用ADO.NET處理數(shù)據的簡單之處(261)
      • 13. 巧妙利用jQuery和PHP打造類似360安全衛(wèi)士防火墻功能開關(類似iphone界面)效果(260)
      • 14. 拍案驚奇!9款神奇的jQuery/CSS3經典插件(259)
      • 15. 2013年度最新最佳CSS網頁設計實例(256)
      • 16. 在asp.net中使用jQuery實現(xiàn)類似QQ網站的圖片切割效果(249)
      • 17. 一款超炫的jquery圖片播放插件[Cloud Carousel](248)
      • 18. 幾行JavaScript代碼搞定Iframe 自動適應(244)
      • 19. [好文翻譯]WEB前端性能優(yōu)化的14條規(guī)則(244)
      • 20. jquery選擇器的實現(xiàn)流程簡析及提高性能建議!(237)
      • 21. 苦逼的設計師:網頁前端的水到底有多深?(237)
      • 22. 某互聯(lián)網公司流傳出的提升代碼內外部質量的22條經驗(217)
      • 23. 巧妙利用函數(shù)的惰性載入提高javascript 代碼性能(217)
      • 24. 20個令人驚嘆的音樂應用程序UI,值得收藏(214)
      • 25. 碼農湊熱鬧!小米搶購手機頁面前端代碼分析(204)
      • 26. 十個WEB開發(fā)人員不可不知的HTML5工具(193)
      • 27. 基于jQuery的Cookie操作插件--簡單而又沒有兼容性問題!(186)
      • 28. 使用jQuery動態(tài)改變圖片顯示大小(183)
      • 29. 使用FlexiGrid實現(xiàn)Extjs表格的效果-網絡傳輸小,更方便!(181)
      • 30. 利用CSS、JavaScript及Ajax實現(xiàn)圖片預加載的三大方法及優(yōu)缺點分析(180)
      • 31. 耳目一新!讓人膜拜的碉堡個人簡歷!厲害的攻城師(171)
      • 32. 6個原則、50條秘技提高HTML5應用及網站性能(170)
      • 33. 簡單方法使頁面回發(fā)后保持焦點(168)
      • 34. 可進可退,jQuery圖片、視頻、flash播放插件prettyPhoto使用記錄(164)
      • 35. 兩段超簡單jquery代碼解決iframe自適應高度問題(不用判斷瀏覽器高度)(144)
      • 36. Jquery插件開發(fā)學習筆記:簡單地入門方法(142)
      • 37. [Ajax] AJAX初體驗之-在博客中添加無刷新搜索(140)
      • 38. 湊熱鬧!小米搶購手機頁面前端代碼分析(139)
      • 39. 從javascript讀取cookies說開去:談談網頁的本地化存儲(133)
      • 40. IE6與CSS樣式兼容問題匯總(133)

      評論排行榜

      • 1. 簡單方法使頁面回發(fā)后保持焦點(2)
      • 2. 超簡單!80行代碼實現(xiàn)Google日歷(拖放、移動、AJAX)(2)
      • 3. 巧妙利用函數(shù)的惰性載入提高javascript 代碼性能(2)
      • 4. 超級簡單!80行代碼實現(xiàn)Google日歷(拖放、移動、AJAX)(1)
      • 5. 超酷百度百科的頁面導航效果,輕松制作---有圖有真相!(1)
      • 6. jquery選擇器的實現(xiàn)流程簡析及提高性能建議!(1)
      • 7. 8個應該去逛逛JQuery的學習網站(1)
      • 8. 一款超炫的jquery圖片播放插件[Cloud Carousel](1)
      • 9. 分享七個絢麗奪目的JQuery導航(還有蘋果、豬八戒等),有圖有真相(1)
      • 10. 耳目一新!令人膜拜的牛人簡歷!厲害的攻城師啊(1)
      • 11. 在asp.net中使用jQuery實現(xiàn)類似QQ網站的圖片切割效果(1)
      • 12. [好文翻譯]WEB前端性能優(yōu)化的14條規(guī)則(1)
      • 13. 兩段超簡單jquery代碼解決iframe自適應高度問題(不用判斷瀏覽器高度)(1)
      • 14. Jquery插件開發(fā)學習筆記:簡單地入門方法(1)
      • 15. 【Multiple backgrounds】用CSS3實現(xiàn)網頁多重背景(1)
      • 16. 眼前一亮!十八款新潮而又獨特的網站Header設計(0)
      • 17. 從javascript讀取cookies說開去:談談網頁的本地化存儲(0)
      • 18. IE6與CSS樣式兼容問題匯總(0)
      • 19. 可進可退,jQuery圖片、視頻、flash播放插件prettyPhoto使用記錄(0)
      • 20. JQuery巧妙利用CSS操作打印樣式(0)
      • 21. 使用jQuery動態(tài)改變圖片顯示大小(0)
      • 22. jQuery多媒體播放器插件jQuery Media Plugin使用方法(0)
      • 23. 基于jQuery的Cookie操作插件--簡單而又沒有兼容性問題!(0)
      • 24. [asp.net入門]利用ADO.NET處理數(shù)據的簡單之處(0)
      • 25. 8個超級震憾的Jquery圖片特效欣賞,考驗你的瀏覽器!(0)
      • 26. 終于開博(0)
      • 27. 每天前進一厘米-如何快速迎頭趕上(0)
      • 28. 超級簡單的jquery操作表格(添加/刪除行、添加/刪除列)(0)
      • 29. 幾行JavaScript代碼搞定Iframe 自動適應(0)
      • 30. 使用FlexiGrid實現(xiàn)Extjs表格的效果-網絡傳輸小,更方便!(0)
      • 31. 說說CSS樣式中你不知道的“大于號”(0)
      • 32. 巧妙利用jQuery和PHP打造類似360安全衛(wèi)士防火墻功能開關(類似iphone界面)效果(0)
      • 33. 深入理解jQuery中$.get、$.post、$.getJSON和$.ajax的用法(0)
      • 34. 你應該了解的CSS語義化命名方式及常用命名規(guī)則(0)
      • 35. 當下流行的響應式布局介紹(0)
      • 36. 十個WEB開發(fā)人員不可不知的HTML5工具(0)
      • 37. 碼農湊熱鬧!小米搶購手機頁面前端代碼分析(0)
      • 38. 6個原則、50條秘技提高HTML5應用及網站性能(0)
      • 39. 利用CSS、JavaScript及Ajax實現(xiàn)圖片預加載的三大方法及優(yōu)缺點分析(0)
      • 40. 湊熱鬧!小米搶購手機頁面前端代碼分析(0)

      推薦排行榜

      • 1. 8個超級震憾的Jquery圖片特效欣賞,考驗你的瀏覽器!(4)
      • 2. 巧妙利用函數(shù)的惰性載入提高javascript 代碼性能(4)
      • 3. 你應該了解的CSS語義化命名方式及常用命名規(guī)則(3)
      • 4. 當下流行的響應式布局介紹(3)
      • 5. 分享七個絢麗奪目的JQuery導航(還有蘋果、豬八戒等),有圖有真相(3)
      • 6. 超級簡單!80行代碼實現(xiàn)Google日歷(拖放、移動、AJAX)(3)
      • 7. [asp.net入門]利用ADO.NET處理數(shù)據的簡單之處(3)
      • 8. 二十個在線編程學習網站(2)
      • 9. [JQuery插件系列]-強烈推薦10個非常不錯的jQuery工具提示插件(2)
      • 10. 耳目一新!令人膜拜的牛人簡歷!厲害的攻城師啊(2)
      • 11. 在asp.net中使用jQuery實現(xiàn)類似QQ網站的圖片切割效果(2)
      • 12. [好文翻譯]WEB前端性能優(yōu)化的14條規(guī)則(2)
      • 13. 眼前一亮!十八款新潮而又獨特的網站Header設計(2)
      • 14. 巧妙利用jQuery和PHP打造類似360安全衛(wèi)士防火墻功能開關(類似iphone界面)效果(2)
      • 15. jquery選擇器的實現(xiàn)流程簡析及提高性能建議!(2)
      • 16. 超級簡單的jquery操作表格(添加/刪除行、添加/刪除列)(2)
      • 17. 使用FlexiGrid實現(xiàn)Extjs表格的效果-網絡傳輸小,更方便!(2)
      • 18. 超簡單!80行代碼實現(xiàn)Google日歷(拖放、移動、AJAX)(2)
      • 19. jQuery多媒體播放器插件jQuery Media Plugin使用方法(2)
      • 20. 8個應該去逛逛JQuery的學習網站(2)
      • 21. 一款超炫的jquery圖片播放插件[Cloud Carousel](2)
      • 22. 基于jQuery的Cookie操作插件--簡單而又沒有兼容性問題!(2)
      • 23. 十個WEB開發(fā)人員不可不知的HTML5工具(2)
      • 24. 碼農湊熱鬧!小米搶購手機頁面前端代碼分析(2)
      • 25. 6個原則、50條秘技提高HTML5應用及網站性能(2)
      • 26. 【葵花寶典】程序員技術練級攻略(轉)(2)
      • 27. 20個令人驚嘆的音樂應用程序UI,值得收藏(1)
      • 28. 深入理解jQuery中$.get、$.post、$.getJSON和$.ajax的用法(1)
      • 29. 利用CSS、JavaScript及Ajax實現(xiàn)圖片預加載的三大方法及優(yōu)缺點分析(1)
      • 30. 湊熱鬧!小米搶購手機頁面前端代碼分析(1)
      • 31. 2013年度最新最佳CSS網頁設計實例(1)

        本站是提供個人知識管理的網絡存儲空間,所有內容均由用戶發(fā)布,不代表本站觀點。請注意甄別內容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權內容,請點擊一鍵舉報。
        轉藏 分享 獻花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多