欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

html5中離線存儲和cookie儲存的示例分析

這篇文章主要為大家展示了“html5中離線存儲和cookie儲存的示例分析”,內(nèi)容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“html5中離線存儲和cookie儲存的示例分析”這篇文章吧。

創(chuàng)新互聯(lián)專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于做網(wǎng)站、成都網(wǎng)站制作、呼圖壁網(wǎng)絡(luò)推廣、成都微信小程序、呼圖壁網(wǎng)絡(luò)營銷、呼圖壁企業(yè)策劃、呼圖壁品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運營等,從售前售中售后,我們都將竭誠為您服務(wù),您的肯定,是我們最大的嘉獎;創(chuàng)新互聯(lián)為所有大學(xué)生創(chuàng)業(yè)者提供呼圖壁建站搭建服務(wù),24小時服務(wù)熱線:028-86922220,官方網(wǎng)址:aaarwkj.com

什么是Cookies(“小甜餅”)呢?簡單來說,Cookies就是服務(wù)器暫存放在你的電腦里的資料(.txt格式的文本文件),好讓服務(wù)器用來辨認(rèn)你的計算機。當(dāng)你在瀏覽網(wǎng)站的時候,Web服務(wù)器會先送一小小資料放在你的計算機上,Cookies 會幫你在網(wǎng)站上所打的文字或是一些選擇都記錄下來。當(dāng)下次你再訪問同一個網(wǎng)站,Web服務(wù)器會先看看有沒有它上次留下的Cookies資料,有的話,就會依據(jù)Cookie里的內(nèi)容來判斷使用者,送出特定的網(wǎng)頁內(nèi)容給你。在HTML5以前我們會使用 cookie,在瀏覽器端緩存一些數(shù)據(jù),例如:登錄用戶信息,歷史搜索信息等等。但是cookie所支持的容量僅僅只有 4k ,也沒有專門的api來操作,只能依賴一些開源的庫, 這里使用 cookies.js 存儲和獲取cookie信息。

// 這是一個cookie值Cookies.set('key', 'value');
// 鏈?zhǔn)秸{(diào)用Cookies.set('key', 'value').set('hello', 'world');
// 可以額外設(shè)置一些參數(shù)Cookies.set('key', 'value', { domain: 'www.example.com', secure: true });
// 設(shè)置緩存時間Cookies.set('key', 'value', { expires: 600 });
// Expires in 10 minutesCookies.set('key', 'value', { expires: '01/01/2012' });
Cookies.set('key', 'value', { expires: new Date(2012, 0, 1) });
Cookies.set('key', 'value', { expires: Infinity });// 獲取Cookies.get('key');

由此可見用cookie存儲有一下幾個缺點:

存儲數(shù)據(jù)的量比較小

本身沒有方便的api對其進(jìn)行操作

cookie信息會在http請求時加入到請求頭中,既不安全也增加了帶寬。

WEB Storage

HTML5 提拱更好的本地存儲規(guī)范 localStorage 和 sessionStorage , 它們將數(shù)據(jù)存儲在本地,而且在http請求時不會攜帶 Storage 里的信息, 使用方式也很簡單:

localStorage.setItem('key', 'value');
localStorage.getItem('key');
localStorage.removeItem('key');
sessionStorage.setItem('key', 'value');
sessionStorage.getItem('key');
sessionStorage.removeItem('key');

sessionStorage 和 localStorage 使用方式及特性基本一致,唯一的區(qū)別是, sessionStorage 只在會話內(nèi)有效,當(dāng)瀏覽器窗口關(guān)閉,sessionStorage 緩存的數(shù)據(jù)會自動被清除, 而 localStorage 只要不手動清除,它會永久保存在本地。

這里有張圖片分析了 cookie 、 localStorage 、 sessionStorage 三者的區(qū)別

html5中離線存儲和cookie儲存的示例分析

OFFLINE(離線)

為了讓 webapp 擁有像 native app 一樣的功能和體驗, 在 HTML5的規(guī)范中加入了許多新的api, 讓頁面可以在離線環(huán)境下正常訪問。 service worker 和 indexedDB 兩者配合可以就可以開發(fā)離線使用的 webapp 了,由于 service worker 目前的兼容性不太好,這里我們寫介紹下比較早的方案 application cache 。

service worker

Service Worker是基于Web Worker的事件驅(qū)動的,他們執(zhí)行的機制都是新開一個線程去處理一些額外的,以前不能直接處理的任務(wù)。對于Web Worker,我們可以使用它來進(jìn)行復(fù)雜的計算,因為它并不阻塞瀏覽器主線程的渲染。而Service Worker,我們可以用它來進(jìn)行本地緩存,相當(dāng)于一個本地的proxy。說起緩存,我們會想起我們常用的一些緩存技術(shù)來緩存我們的靜態(tài)資源,但是老的方式是不支持調(diào)試的,靈活性不高。使用Service Worker來進(jìn)行緩存,我們可以用javascript代碼來攔截瀏覽器的http請求,并設(shè)置緩存的文件,直接返回,不經(jīng)過web服務(wù)器,然后,做更多你想做的事情。

因此,我們可以開發(fā)基于瀏覽器的離線應(yīng)用。這使得我們的web應(yīng)用減少對網(wǎng)絡(luò)的依賴。例如,我們開發(fā)了一個新聞閱讀的web應(yīng)用,當(dāng)你用手機瀏覽器在有網(wǎng)絡(luò)的情況下打開時,你可以正常的獲取新聞內(nèi)容??墒牵绻謾C進(jìn)入飛行模式,那這個應(yīng)用你就沒法使用了。

如果我們使用了Service Worker做緩存,瀏覽器http請求會先經(jīng)過Service Worker,通過url mapping去匹配,如果匹配到了,則使用緩存數(shù)據(jù),如果匹配失敗,則繼續(xù)執(zhí)行你指定的動作。一般情況下,匹配失敗則讓頁面顯示“網(wǎng)頁無法打開”。

service work 生命周期

html5中離線存儲和cookie儲存的示例分析

service work demo

<!DOCTYPE html><html lang="en">
  <head>
    <meta charset="utf-8">
    <script>
        navigator.serviceWorker.register("/service-worker.js").then(function(serviceWorker) {            console.log("success!");
        });    </script>
  </head>
  <body>
  </body></html>

在頁面注冊service-worker成功時就會調(diào)用這個js

this.oninstall = function(e) {    var resources = new Cache();    var visited = new Cache();    // Fetch them.
    e.waitUntil(resources.add(        "/index.html",        "/fallback.html",        "/css/base.css",        "/js/app.js",        "/img/logo.png"
    ).then(function() {        // Add caches to the global caches.
        return Promise.all([
            caches.set("v1", resources),
            caches.set("visited", visited)
        ]);
    }));
};this.onfetch = function(e) {
    e.respondWith(        // Check to see if request is found in cache
        caches.match(e.request).catch(function() {            // It's not? Prime the cache and return the response.
            return caches.get("visited").then(function(visited) {                return fetch(e.request).then(function(response) {
                    visited.put(e.request, response);                    // Don't bother waiting, respond already.
                    return response;
                });
            });
        }).catch(function() {            // Connection is down? Simply fallback to a pre-cached page.
            return caches.match("/fallback.html");
        });
    );
};

service worker 采用事件監(jiān)聽機制, 上面的代碼監(jiān)聽了 install 和 fetch 事件,當(dāng) server worker 安裝成功后,調(diào)用此方法,然后緩存頁面的資源文件, fetch 頁面請求事件, server worker 攔截到用戶請求,當(dāng)發(fā)現(xiàn)請求文件命中緩存則從緩存中取得文件,返回給頁面,無需經(jīng)過服務(wù)器,借此達(dá)到離線的目的。

當(dāng)然 service worker 的功能遠(yuǎn)不止現(xiàn)在這些

indexedDB

indexedDB 是一個用于本地存儲數(shù)據(jù)的 NOSQL 數(shù)據(jù)庫,擁有極快的數(shù)據(jù)查詢速度,而且可以直接保存js 對象。相比web sql(sqlite)更加高效,包括索引、事務(wù)處理和健壯的查詢功能。indexedDB特點:

1.一個網(wǎng)站可能有一個或多個 IndexedDB 數(shù)據(jù)庫,每個數(shù)據(jù)庫必須具有惟一的名稱。

2.一個數(shù)據(jù)庫可包含一個或多個對象存儲

一個對象存儲(由一個名稱惟一標(biāo)識)是一個記錄集合。每個記錄有一個鍵 和一個值。該值是一個對象,可擁有一個或多個屬性。鍵可能基于某個鍵生成器,從一個鍵路徑衍生出來,或者是顯式設(shè)置。一個鍵生成器自動生成惟一的連續(xù)正整數(shù)。鍵路徑定義了鍵值的路徑。它可以是單個 JavaScript 標(biāo)識符或多個由句點分隔的標(biāo)識符。

基本使用方式如下:

var openRequest = indexedDB.open("auto_people", 3);var db; //數(shù)據(jù)庫對象openRequest.onupgradeneeded = function(e)
{    console.log("Running onupgradeeded...");	var thisDB = e.target.result;	if(!thisDB.objectStoreNames.contains("people")){
thisDB.createObjectStore("people", {autoIncrement:true}); //新建一個store并設(shè)置主鍵自增長
}
}//創(chuàng)建成功openRequest.onsuccess = function(e){    console.log("success!");
   db = e.target.result;	//Listen for add clicks}
openRequest.onerror = function(e){	console.log("error!");	console.dir(e);
}//這應(yīng)該站在別的地方處理,這是做一個代碼展示var transaction = db.transaction(['people'], "readwrite"); 
//創(chuàng)建一個連接var store = transaction.objectStore("people");  //獲取storevar request = store.add({
   name: 'myron',
   email: 'test@qq.com',
   created: new Date()
}); //添加信息request.onerror = function(e){
   alert('error!');    console.dir(e);
} //當(dāng)添加失敗時調(diào)用request.onsuccess = function(e){    console.log('Did it!');
} //添加成功時調(diào)用request = store.get(1);  //獲取第一條數(shù)據(jù)request.onsuccess = function(e)
{    var result = e.target.result;    console.dir(result);    if(result){        //拿到存儲的對象
}
}

以上是“html5中離線存儲和cookie儲存的示例分析”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!

分享標(biāo)題:html5中離線存儲和cookie儲存的示例分析
文章地址:http://aaarwkj.com/article48/igsgep.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供電子商務(wù)、外貿(mào)網(wǎng)站建設(shè)微信小程序、品牌網(wǎng)站設(shè)計、靜態(tài)網(wǎng)站網(wǎng)頁設(shè)計公司

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

h5響應(yīng)式網(wǎng)站建設(shè)
白白色最新福利在线视频观看| 裸体性做爰免费视频网站| 亚洲av中文久久精品国内| 日本精品a秘在线观看| 亚洲综合av一区二区| 91久久高清国语自产拍| 免费特黄特黄的欧美大片| 日本加勒比高清在线播放| 亚洲国产成在人网站天堂| 国产老熟女一区二区三区| 午夜精品国产日韩欧美在线| 人妻一区二区三区中文字幕| 声入人心第一季在线观看| 国产av人妻精品一区二| 日韩电影一区二区在线观看中文字幕 | 国产三级国产精品国产专播| 中文字幕精品一区二区三区精品 | 男女激情视频久久精品| 免费又色又爽无遮挡网站| 中文字幕日韩欧美第一页| 久久国产精品一区免费观看| 夫妻爱爱视频在线观看| 亚洲男人天堂日本一区| 少妇高潮一区二区三区在线| 亚洲av天堂天天天堂色| 中文字幕久久熟女蜜桃| 欧美日韩专区一区二区三区| 日韩欧美的一区二区三区| 97在线亚洲欧美视频| 欧美国产综合欧美一区二区三区| 91亚洲精品一区二区三区| 国产经典三级在线看| 97在线视频在线播放| 欧美成人精品午夜一区二区 | 日本中文字幕免费一区| 国产精品黄色av一区二区| 91精品日日躁夜夜躁欧美| 午夜国产激情福利网站| 一区二区三区福利视频在线观看| 国产欧美成人综合色就色| 久久午夜av一区二区|