九色国产,午夜在线视频,新黄色网址,九九色综合,天天做夜夜做久久做狠狠,天天躁夜夜躁狠狠躁2021a,久久不卡一区二区三区

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
Web前端離線緩存應(yīng)用

項(xiàng)目中需要將在線的Web改造成支持離線版本的Web應(yīng)用,思考了四種方法:

1.Manifest文件

它的特點(diǎn)有以下三點(diǎn):

1.1 Manifest文件有變化才有更新

1.2一次必須更新完Manifest中的所有文件

1.3更新完成后下次生效

操作方式如下:

1.在html的開始標(biāo)簽中,我們指定一個(gè).manifest文件

<html lang="en" man[ifest="/offline.manifest">
2
.由于manifest文件的MIME類型為text/cache-manifest,因此需要在服務(wù)器端配置:

1.apache服務(wù)器需要在mime.types中加入以下配置:text/cache-manifestmaifest?;蛘呖梢栽?htacess中加入以下配置 AddType text/cache-manifest.maifest。

  1. <span style="font-size:14px;color:#666666;">CACHE MANIFEST  
  2. #v1  
  3.   
  4. CACHE:  
  5. basic_page_layout_ch4.html  
  6. css/main.css  
  7. img/atwiNavBg.png  
  8.   
  9.   
  10. NETWORK:  
  11. *  
  12.   
  13. FALLBACK:  
  14. //offline.html</span>  

屬性:

NETWORK:部分羅列了所有不需要被緩存的文件,你可以將看成一個(gè)”在線白名單“。此處羅羅列的文件在網(wǎng)絡(luò)暢通的情況下都會(huì)直接跳過(guò)緩存。如果你想網(wǎng)絡(luò)內(nèi)容在網(wǎng)絡(luò)暢通個(gè)的情況下及時(shí)更新,可以在此處使用* 。星號(hào)唄成為在線白名單通配符。

FALLBACK:部分使用/字符定義了一個(gè)URL模板,他的作用是訪問(wèn)每個(gè)頁(yè)面時(shí)都會(huì)問(wèn)”緩存中有這個(gè)頁(yè)面嗎?“如果有則顯示緩存頁(yè)面,如果沒(méi)有,則顯示指定的offline.html文件。

2.Local storage

local storage的特點(diǎn)是永久存儲(chǔ),也就是持久化本地存儲(chǔ)的表現(xiàn)。
2.1.接口與事件
它采用鍵值對(duì)的數(shù)據(jù)存儲(chǔ)方式,完全以字符串的形式存儲(chǔ)。
localStorage.getItem(key),用于獲取指定key本地存儲(chǔ)的值。
localStorage.setItem(key,value),該接口用于將value的值村吃到key字段中。
localStorage.removeItem(key),用于刪除指定key在本地存儲(chǔ)的值。
localStorage.length
localStorage.key(index),用于返回指定的key。
localStorage.clear().用于清除所有的本地存儲(chǔ)

3.SessionStorage

該方法的接口和事件與localStorage是一樣的,不同的是它是會(huì)話級(jí)別的數(shù)據(jù),當(dāng)關(guān)閉了頁(yè)面之后,這些數(shù)據(jù)就會(huì)被刪除。

4.Web SQL

該方法是web端的數(shù)據(jù)庫(kù)方法,用于存儲(chǔ)一些具有復(fù)雜數(shù)據(jù)結(jié)構(gòu)的數(shù)據(jù)形式和以上幾種無(wú)法存儲(chǔ)的文件等。



考慮到數(shù)據(jù)類型的不同,主要采取以下方法進(jìn)行存儲(chǔ):

主頁(yè)使用 第一種格式存儲(chǔ)。

CSS樣式、js動(dòng)作,樣本文件js,內(nèi)容js采用localstorage存儲(chǔ)。

復(fù)雜數(shù)據(jù)格式采取Web SQL存儲(chǔ)。



代碼如下:
[javascript] view plain copy
print?
  1. <script type="text/javascript">  
  2.     $(document).ready(function () {  
  3.         console.log('ready %o',new Date());  
  4.         var APP_START_FAILED = "I'm sorry, the app can't start right now.";  
  5.         function startWithResources(resources, storeResources) {  
  6.   
  7.             // Try to execute the Javascript  
  8.             try {  
  9.                 //eval(resources.js); v6  
  10.                 insertScript(resources.js);  
  11.                 setTimeout(function(){  
  12.                     APP.applicationController.start(resources, storeResources);                   
  13.                 },500);  
  14.   
  15.             // If the Javascript fails to launch, stop execution!  
  16.             } catch (e) {  
  17.                 alert(APP_START_FAILED);  
  18.                 console.log('%o',e);  
  19.             }  
  20.         }  
  21.         function startWithOnlineResources(resources) {  
  22.             startWithResources(resources, true);  
  23.         }  
  24.   
  25.         function startWithOfflineResources() {  
  26.             var resources;  
  27.   
  28.             // If we have resources saved from a previous visit, use them  
  29.             if (localStorage && localStorage.resources) {  
  30.                 resources = JSON.parse(localStorage.resources);  
  31.                 startWithResources(resources, false);  
  32.   
  33.             // Otherwise, apologize and let the user know  
  34.             } else {  
  35.                 alert(APP_START_FAILED);  
  36.             }  
  37.         }  
  38.   
  39.         // If we know the device is offline, don't try to load new resources  
  40.         if (navigator && navigator.onLine === false) {  
  41.             startWithOfflineResources();  
  42.   
  43.         // Otherwise, download resources, eval them, if successful push them into local storage.  
  44.         } else {  
  45.             $.ajax({  
  46.                 url: 'api/resources/',  
  47.                 success: startWithOnlineResources,  
  48.                 error: startWithOfflineResources,  
  49.                 dataType: 'json'  
  50.             });  
  51.         }  
  52.         function insertScript (script) {  
  53.             var node=document.createElement('script');  
  54.             node.innerHTML=script;  
  55.             document.head.appendChild(node);  
  56.         }  
  57.   
  58.     });  
  59. </script>  







本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
HTML5新特性:Web應(yīng)用緩存實(shí)現(xiàn)離線瀏覽
使用 HTML5 開發(fā)離線應(yīng)用
九種瀏覽器端緩存方法知多少
前端HTML5幾種存儲(chǔ)方式的總結(jié)
任務(wù)9 使用HTML5數(shù)據(jù)存儲(chǔ)
HTML5 存儲(chǔ)API介紹 | 開發(fā)人員中心
更多類似文章 >>
生活服務(wù)
熱點(diǎn)新聞
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服