亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > HTML > 正文

HTML5 Web緩存和運用程序緩存(cookie,session)

2024-08-26 00:20:17
字體:
來源:轉載
供稿:網友

在介紹HTML5 web緩存前,來認識一下cookie和session:

session:

由于HTTP是無狀態的,你是誰?你干了什么?抱歉服務器都是不知道的。

因此session(會話)出現了,它會在服務器上存儲用戶信息以便將來使用(比如用戶名稱,購物車購買商品等)。

但是session是臨時的,用戶離開網站將被刪除。如果要永久存儲信息,可以保存在數據庫中!

session工作原理:為每個用戶創建一個session id(核心?。。。?。而session id是存儲在cookie中的,也就是說如果瀏覽器禁用了cookie,那么session會失效?。ǖ强梢酝ㄟ^其它方式實現,如:通過URL傳遞session id)

用戶驗證一般采用session。

cookie:

目的:網站標記用戶身份而存儲在本地客戶端的數據(通常經過加密)。

  1. 用戶訪問網頁時,名字記錄在cookie中;
  2. 下次繼續訪問該網頁時,可以從cookie中讀取用戶訪問記錄。

cookie會在同源的http請求攜帶(即使不需要),即在客戶端和服務器之間來回傳遞!

cookie的數據大小不超過4k

cookie的有效期:設置的cookie有效時間之前一直有效,即使瀏覽器關閉!

localStorage & sessionStorage:

早期,本地緩存普遍使用的是cookie,但是web存儲需要更安全、更快速!

這些數據不會保存在服務器上(存儲在客戶端),不會影響服務器性能!

sessionStorage和localStorage數據存儲也有大小限制,但卻比cookie大得多,可以達到5M甚至更大!

localStorage:沒有時間限制的數據存儲!

sessionStorage:由英文意思也可知,它是對session的數據存儲,所以在用戶關閉瀏覽器(標簽頁/窗口)后,數據被刪除!

HTML5 web存儲支持情況:

IE8以上,現代瀏覽器。

數據以鍵值對存儲:

localStorage和sessionStorage都有以下幾個方法:

  1. localStorage.setItem(key,value):設置(保存)數據;相當于localStorage.key=value!
  2. localStorage.getItem(key):獲取數據
  3. localStorage.removeItem(key):刪除單個數據
  4. localStorage.clear():刪除所有數據
  5. localStorage.key(index):獲取某個索引的鍵值
<!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8">    <meta name="viewport" content="width=device-width, initial-scale=1.0">    <meta http-equiv="X-UA-Compatible" content="ie=edge">    <title>web storage</title></head><body>    <div id="test"></div>    <script>        if (typeof (Storage) != undefined) {            localStorage.name = 'xiao ming';            localStorage.setItem('name1', 'Apple');            document.getElementById('test').innerHTML = "you are: " + localStorage.name;            console.log("first:" + localStorage.name1 + "," + localStorage.key(0));            localStorage.removeItem('name1');            console.log("second: " + localStorage.name1);            console.log("third: " + localStorage.getItem('name'));            localStorage.clear();            console.log("last:" + localStorage.name);        } else {            document.getElementById('test').innerHTML = "更新瀏覽器吧!目前瀏覽器不支持stroage";        }            </script></body></html>

程序運行結果:

HTML5,Web緩存,運用程序緩存,cookie,session

注意:鍵值對是以字符串保存的,根據需求應改變類型(比如做加法,變為Number型)。

 HTML5運用程序緩存(Application Cache):

通過創建cache manifest文件,web運用可被緩存,并且無網絡狀態可以進行訪問!

Application Cache優勢:

1.離線瀏覽;
2.速度更快:已緩存資源加載更快;
3.減少瀏覽器負載:客戶端將只從服務器下載或更新更改過的資源

支持情況:

IE10以上,現代瀏覽器。

使用:

<!DOCTYPE html><html manifest="demo.appcache"></html>

注意:要開啟application cache,需指定manifest屬性(擴展名:.appcache);如果未指定manifest屬性,頁面不會緩存(除非在manifest文件中直接指定了該頁面?。?/p>

manifest文件在服務器上需正確的配置MIME-type:text/cache-manifest。

Manifest文件:

manifest是簡單的文本文件,它告知瀏覽器被緩存的內容以及不被緩存的內容!

manifest可分為三部分:

CACHE MANIFEST:此項列出的文件將在首次下載后進行緩存!

NETWORK:此項列出的文件需要與服務器進行網絡連接,不會被緩存!

FALLBACK:此項列出當頁面無法訪問時的回退頁面(如:404頁面)!

test.appcache:

CACHE MANIFEST#2017 11 21 v10.0.1/test.css/logo.gif/main.jsNETWORK/login.php/register.phpFALLBACK#/html/目錄中文件無法訪問時,用/offline.html替代/html/ /offline.html

更新application cache的情況:
1.用戶清空瀏覽器緩存!
2.manifest文件被更改(#:表示注釋,同時如果更改為#2018 1 1 v20.0.0,則瀏覽器會重新緩存?。?br /> 3.程序進行更新application cache!

Web Workers:

web workers是運行在后臺的javascript,獨立于其它腳本,不會影響頁面性能!

而一般的HTML頁面上執行腳本時,除非腳本加載完成,否則頁面不會響應!

支持情況:IE10以上,現代瀏覽器

示例:html文件:

<!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8">    <meta name="viewport" content="width=device-width, initial-scale=1.0">    <meta http-equiv="X-UA-Compatible" content="ie=edge">    <title>web worker</title></head><body>    <p>計數:<output id="count"></output></p>    <button onclick="startWorker()">開始</button>    <button onclick="overWorker()">結束</button>    <script>        var w;        function startWorker(){            // 檢測瀏覽器是否支持web worker            if(typeof(Worker)!=='undefined'){                if(typeof(w)=='undefined'){                    //創建web worker對象                    w=new Worker('testWorker.js');                }                // 事件持續監聽(即使外部腳本已經完成),除非被終止                w.onmessage=function(event){                    document.getElementById('count').innerHTML=event.data;                };            }else{                document.getElementById('count').innerHTML='瀏覽器不支持web worker';            }        }        function overWorker() {            // 終止web worker對象,釋放瀏覽器/計算機資源            w.terminate();            w=undefined;        }    </script></body></html>

testWorker.js文件:

var i=0;function timedCount() {    i+=1;    // 重要的部分,向html頁面傳回一段信息    postMessage(i);    setTimeout('timedCount()',500);}timedCount();

注意1:通常web worker不是用于如此簡單的任務,而是用在更耗CPU資源的任務!

注意2:在chrome中運行會產生“cannot be accessed from origin 'null'”的錯誤,我的解決方法是:xampp中開啟apache,用http://localhost/進行訪問。

web worker缺點:

由于web worker位于外部文件中,所以它無法訪問下列javascript對象:

  1. window對象;
  2. document對象;
  3. parent對象。

HTML5 server-sent events(服務器發送事件):

server-sent事件是單向信息傳遞;網頁可以自動獲取來自服務器的更新!

以前:網頁先詢問是否有可用的更新,服務器發送數據,進行更新(雙向數據傳遞)!

支持情況:除IE以外的現代瀏覽器均支持!

示例代碼:html文件:

<!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8">    <meta name="viewport" content="width=device-width, initial-scale=1.0">    <meta http-equiv="X-UA-Compatible" content="ie=edge">    <title>sever sent event</title></head><body>    <p>sever sent event informations</p>    <div id="test"></div>    <script>        // 判斷瀏覽器是否支持EventSource        if(typeof(EventSource)!==undefined){            // 創建EventSource對象            var source=new EventSource("test.php");            // 事件監聽            source.onmessage=function(event){                document.getElementById('test').innerHTML+=event.data+"<br>";            };        }else{            document.getElementById('test').innerHTML="sorry,瀏覽器不支持server sent event";        }    </script></body></html>

test.php:

<?phpheader('Content-Type:text/event-stream');header('Cache-Control:no-cache');$time=date('r');echo "data:The server time is: {$time} /n/n";// 刷新輸出數據flush();

注意:后面沒有內容,php文件可以不用"?>"關閉!

HTML5 WebSocket:

  1. WebSocket是HTML5提供的一種在單個TCP連接上建立全雙工(類似電話)通訊的協議;
  2. 瀏覽器和服務器之間只需要進行一次握手的操作,瀏覽器和服務器之間就形成了一條快速通道,兩者之間就可直接進行數據傳送;
  3. 瀏覽器通過javascript建立WebSocket連接請求,通過send()向服務器發送數據,onmessage()接收服務器返回的數據。

 WebSocket如何兼容低瀏覽器:

  1. Adobe Flash Socket;
  2. ActiveX HTMLFile(IE);
  3. 基于multipart編碼發送XHR;
  4. 基于長輪詢的XHR

WebSocket可以用在多個標簽頁之間的通信!

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VeVb武林網。


注:相關教程知識閱讀請移步到HTML教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
97人洗澡人人免费公开视频碰碰碰| 成人黄色av播放免费| 精品中文字幕在线2019| 国产精品久久av| 久久这里只有精品视频首页| 91视频国产精品| 欧美精品一区二区三区国产精品| 97精品久久久中文字幕免费| 国产精品一二区| 久久久精品影院| 国产精品视频网| 俺去了亚洲欧美日韩| 国产日产久久高清欧美一区| 亚洲第一福利视频| 精品久久久久久久久久久| 欧美一级片久久久久久久| 欧美成人性生活| 精品成人乱色一区二区| 亚洲一区二区免费| 高清视频欧美一级| 少妇av一区二区三区| 欧美丰满少妇xxxxx做受| 亚洲va男人天堂| 这里只有精品久久| 18一19gay欧美视频网站| 菠萝蜜影院一区二区免费| 亚洲一区二区少妇| 亚洲专区在线视频| 欧美成人在线网站| 欧美性猛交99久久久久99按摩| 国产美女精品视频| 欧美性生交xxxxx久久久| 国产97在线观看| 国产精品免费观看在线| 国产亚洲欧美日韩美女| 欧美精品福利在线| 欧美成人合集magnet| 国产免费亚洲高清| 亚洲少妇中文在线| 精品成人久久av| 欧美黑人狂野猛交老妇| 黑人巨大精品欧美一区二区| 久久久中精品2020中文| 久久久91精品国产| 成人黄色大片在线免费观看| 亚洲最大中文字幕| 欧美黑人一区二区三区| 欧美亚洲第一区| 精品中文字幕在线2019| 久久国产精品免费视频| 亚洲人成啪啪网站| 青青草精品毛片| 中日韩美女免费视频网站在线观看| 久久精品小视频| 欧美另类暴力丝袜| 91美女高潮出水| 少妇久久久久久| 精品国产福利在线| 草民午夜欧美限制a级福利片| 51精品在线观看| 国产99视频在线观看| 有码中文亚洲精品| 日本不卡视频在线播放| 8050国产精品久久久久久| 亚洲性夜色噜噜噜7777| 91国产中文字幕| 精品久久久91| 精品亚洲夜色av98在线观看| 国产精品美女无圣光视频| 国产一区欧美二区三区| 欧美日韩免费区域视频在线观看| 日韩电视剧免费观看网站| 亚洲另类激情图| 538国产精品一区二区在线| 国模视频一区二区三区| 国产日韩一区在线| 91青草视频久久| 久久99久久久久久久噜噜| 91大神福利视频在线| 国产精品久久久久久久久久东京| 欧美成人午夜剧场免费观看| 尤物精品国产第一福利三区| 精品久久久久久国产| 亚洲免费电影一区| 欧美性生活大片免费观看网址| 欧美日韩国产在线| 最近2019年日本中文免费字幕| 日韩电影免费在线观看中文字幕| 亚洲人高潮女人毛茸茸| 6080yy精品一区二区三区| 精品福利免费观看| 欧美性极品xxxx娇小| 国内精品美女av在线播放| 国产精品高清网站| 欧美黑人一区二区三区| 国产精品va在线播放| 亚洲成人精品视频在线观看| 国产精品久久久久久久久久99| 国产日韩欧美在线观看| 久久久久久久久久久av| 亚洲老板91色精品久久| 日韩有码在线视频| 国产亚洲精品美女| 欧美肥婆姓交大片| 亚洲精品视频播放| 欧美成人合集magnet| 亚洲国产精久久久久久| 97精品国产97久久久久久| 久久久久99精品久久久久| 国产伦精品一区二区三区精品视频| 日韩精品免费在线视频观看| 在线精品高清中文字幕| 欧美黄色成人网| 国产精品91在线| 国产美女久久精品香蕉69| 久久久久这里只有精品| 国产日韩欧美电影在线观看| 亚洲男人天天操| www.亚洲人.com| 亚洲香蕉av在线一区二区三区| 国产欧美久久久久久| 精品久久久在线观看| 亚洲男子天堂网| 国内免费久久久久久久久久久| 黄色一区二区在线| 国产日韩中文在线| 欧美黄色片在线观看| 中文字幕在线看视频国产欧美| 亚洲护士老师的毛茸茸最新章节| 国产亚洲欧美aaaa| www.久久草.com| 在线看欧美日韩| 最近2019中文字幕第三页视频| 91精品久久久久久久久久另类| 亚洲a级在线播放观看| 啊v视频在线一区二区三区| 精品久久久久久久久国产字幕| 久久精品亚洲国产| 亚洲少妇中文在线| 欧洲美女7788成人免费视频| 亚洲午夜未满十八勿入免费观看全集| 96pao国产成视频永久免费| 亚洲国产日韩欧美在线图片| 日本精品久久中文字幕佐佐木| 日韩在线观看免费全集电视剧网站| 亚洲网在线观看| 国产成人精品优优av| 国产美女搞久久| 91经典在线视频| 日韩的一区二区| 成人在线一区二区| 久久久久久久香蕉网| 国产日韩欧美电影在线观看| 国产精品91在线观看| 久久久久久亚洲精品| 国语自产精品视频在线看| 日韩高清av在线| 91亚洲午夜在线| 欧美激情亚洲综合一区| 最近2019免费中文字幕视频三| 亚洲精品之草原avav久久| 成人免费看吃奶视频网站| 亚洲xxx自由成熟| 国产97在线视频|