HTML5 中 40 個最重要的技術點
內容
- 介紹
- SGML(標準通用標記語言)和HTML(超文字標記語言),XML(可擴充套件標記語言)和HTML的之間有什麼關係?
- 什麼是HTML5?
- 為什麼HTML5裡面我們不需要DTD(Document Type Definition文件型別定義)?
- 如果我不放入<! DOCTYPE html> 標籤,HTML5還會工作麼?
- 哪些瀏覽器支援HTML5?
- HTML5的頁面結構同HTML4或者更前的HTML有什麼區別?
- HTML5中的datalist是什麼?
- HTML5中哪些是不同的新的表單元素型別?
- HTML5中什麼是輸出元素?
- 什麼是SVG(Scalable Vector Graphics可縮放向量圖形)?
- 我們能看到使用HTML5的SVG的簡單例子麼?
- HTML5中canvas是什麼?
- 我們如何使用Canvas來畫一條簡單的線?
- Canvas和SVG圖形之間的區別是什麼?
- 如何使用Canvas和HTML5中的SVG去畫一個矩形?
- CSS(cascading style sheets級聯樣式表)中的選擇器是什麼?
- 如何使用ID值來應用一個CSS樣式?
- CSS中使用列布局是什麼?
- 你能解釋一下CSS的盒子模型麼?
- 你能解釋一些CSS3中的文字效果麼?
- 什麼是Web Workers?為什麼我們需要他們?
- Web Worker執行緒的限制是什麼?
- 我們如何在JavaScript中建立一個worker執行緒?
- 如何中止Web Worker?
- 為什麼我們需要HTML5的服務傳送事件?
- HTML5中的本地儲存概念是什麼?
- 我們如何從本地儲存中新增和移除資料?
- 本地儲存的生命週期是什麼?
- 本地儲存和cookies(儲存在使用者本地終端上的資料)之間的區別是什麼?
- 什麼是事務儲存?我們如何建立一個事務儲存?
- 本地儲存和事務儲存之間的區別是什麼?
- 什麼是WebSQL?
- WebSQL 是HTML5的一個規範嗎?
- 我們如何使用WebSQL?
- HTML5中的應用快取是什麼?
- HTML5中我們如何實現應用快取?
- 我們如何重新整理瀏覽器的應用快取?
- 應用快取中的回退是什麼?
- 應用快取中的網路是什麼?
介紹
我是一個ASP.NET MVC的開發者,最近在我找工作的時候被問到很多與HTML5相關的問題和新特性。所以以下40個重要的問題將幫助你複習HTML5相關的知識。
這些問題不是你得到工作的高效解決方案,但是可以在你想快速複習相關主題的時候有所幫助。
快樂地找工作。
SGML(標準通用標記語言)和HTML(超文字標記語言),XML(可擴充套件標記語言)和HTML的之間有什麼關係?
SGML(標準通用標記語言)是一個標準,告訴我們怎麼去指定文件標記。他是隻描述文件標記應該是怎麼樣的元語言,HTML是被用SGML描述的標記語言。
因此利用SGML建立了HTML參照和必須共同遵守的DTD,你會經常在HTML頁面的頭部發現“DOCTYPE”屬性,用來定義用於解析目標DTD
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
現在解析SGML是一件痛苦的事情,所以建立了XML使事情更好。XML使用了SGML,例如:在SGML中你必須使用起始和結束標籤,但是在XML你可以有自動關閉的結束標籤。
XHTML建立於XML,他被使用在HTML4.0中。你可以參考下面程式碼片段中展示的XML DTD
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
總之,SGML是所有型別的父類,較舊的HTML利用SGML,HTML4.0使用派生自XML的XHTML
什麼是HTML5?
HTML5是最新的HTML標準,他的主要目標是提供所有內容而不需要任何的像flash,silverlight等的額外外掛,這些內容來自動畫,視訊,富GUI等
HTML5是全球資訊網聯盟(W3C)和網路超文字應用技術工作組(WHATWG)之間合作輸出的
為什麼HTML5裡面我們不需要DTD(Document Type Definition文件型別定義)?
HTML5沒有使用SGML或者XHTML,他是一個全新的東西,因此你不需要參考DTD,對於HTML5,你僅需放置下面的文件型別程式碼告訴瀏覽器識別這是HTML5文件
如果我不放入<! DOCTYPE html> ,HTML5還會工作麼?
不會,瀏覽器將不能識別他是HTML文件,同時HTML5的標籤將不能正常工作
哪些瀏覽器支援HTML5?
幾乎所有的瀏覽器Safari,Chrome,Firefox,Opera,IE都支援HTML5
HTML5的頁面結構同HTML4或者更前的HTML有什麼區別?
一個典型的WEB頁面包含頭部,腳部,導航,中心區域,側邊欄。現在如果我們想在在HTML4的HTML區域中呈現這些內容,我們可能要使用DIV標籤。
但是在HTML5中通過為這些區域建立元素名稱使他們更加清晰,也使得你的HTML更加可讀
以下是形成頁面結構的HTML5元素的更多細節:
- <header>:代表HTML的頭部資料
- <footer>:頁面的腳部區域
- <nav>:頁面導航元素
- <article>:自包含的內容
- <section>:使用內部article去定義區域或者把分組內容放到區域裡
- <aside>:代表頁面的側邊欄內容
HTML5中的datalist是什麼?
HTML5中的Datalist元素有助於提供文字框自動完成特性,如下圖所示:
以下是DataList功能的HTML程式碼:
<input list="Country"> <datalist id="Country"> <option value="India"> <option value="Italy"> <option value="Iran"> <option value="Israel"> <option value="Indonesia"> </datalist>
HTML5中什麼是不同的新的表單元素型別?
這裡有10個重要的新的表單元素在HTML5中被介紹
- Color
- Date
- Datetime-local
- Time
- Url
- Range
- Telephone
- Number
- Search
讓我們一步一步瞭解這10個元素
如果你想顯示顏色選擇對話方塊
<input type="color" name="favcolor">
如果你想顯示日曆對話方塊
<input type="date" name="bday">
如果你想顯示含有本地時間的日曆
<input type="datetime-local" name="bdaytime">
如果你想建立一個含有email校驗的HTML文字框,我們可以設定型別為“email”
<input type="email" name="email">
對於URL驗證設定型別為”url”,如下圖顯示的HTML程式碼
<input type="url" name="sitename">
如果你想用文字展示數字範圍,你可以設定型別為“number”
<input type="number" name="quantity" min="1" max="5">
如果你想顯示範圍控制,你可以使用型別”range”
<input type="range" min="0" max="10" step="2" value="6">
想讓文字框作為搜尋引擎
<input type="search" name="googleengine">
想只能輸入時間
<input type="time" name="usr_time">
如果你想使用文字框接受電話號碼
<input type="tel" name="mytel">
HTML5中什麼是輸出元素?
當你需要計算兩個輸入的和值到一個標籤中的時候你需要輸出元素。例如你有兩個文字框(如下圖),你想將來自這兩個輸入框中的數字求和並放到標籤中。
下面是如何在HTML5中使用輸出元素的程式碼
<form onsubmit="return false" öninput="o.value = parseInt(a.value) + parseInt(b.value)"> <input name="a" type="number"> + <input name="b" type="number"> = <output name="o" /> </form>
為了簡單起見,你也可以使用“valueAsNumber”來代替“parseInt”。你同樣能在output元素中使用“for”使其更加可讀
<output name="o" for="a b"></output>
什麼是SVG(Scalable Vector Graphics可縮放向量圖形)?
SVG(Scalable Vector Graphics可縮放向量圖形)表示可縮放向量圖形。他是基於文字的圖形語言,使用文字,線條,點等來進行影象繪製,這使得他輕便,顯示更加迅速
我們能看到使用HTML5的SVG的簡單例子麼?
比方說,我們希望使用HTML5 SVG去顯示以下簡單的線條
下面是HTML5程式碼
<svg id="svgelem" height="[object SVGAnimatedLength]" xmlns="http://www.w3.org/2000/svg"> <line style="stroke: rgb(255, 0, 0); stroke-width: 2px;" y2="[object SVGAnimatedLength]" x2="[object SVGAnimatedLength]" y1="[object SVGAnimatedLength]" x1="[object SVGAnimatedLength]"> </line>
HTML5中canvas是什麼?
Canvas是HTML中你可以繪製圖形的區域
我們如何使用Canvas來畫一條簡單的線?
- 定義Canvas區域
- 獲取訪問canvas上下文區域
- 繪製圖形
定義Canvas區域
定義Canvas區域你需要使用下面的HTML程式碼,這定義了你能進行繪圖的區域
<canvas id="mycanvas" width="600" height="500" style="border:1px solid #000000;"></canvas>
獲取畫布區域的訪問
在畫布上進行繪圖我們首先需要獲取上下文區域的關聯,下面是獲取畫布區域的程式碼。
var c=document.getElementById("mycanvas"); var ctx=c.getContext("2d");
繪製圖形
現在一旦你獲取了訪問上下文,我們就可以開始在上下文中繪製了。首先呼叫“move”方法並從一個點開始,使用線條方法繪製線條然後使用stroke方法結束。
ctx.moveTo(10,10); ctx.lineTo(200,100); ctx.stroke();
以下是完整的程式碼
<body onload="DrawMe();"> <canvas id="mycanvas" width="600" height="500" style="border:1px solid #000000;"></canvas> </body> <script> function DrawMe() { var c=document.getElementById("mycanvas"); var ctx=c.getContext("2d"); ctx.moveTo(10,10); ctx.lineTo(200,100); ctx.stroke(); }
你可以得到以下輸出
Canvas和SVG圖形的區別是什麼?
Note:-如果你看了之前的兩個的問題,Canvas和SVG都可以在瀏覽器上繪製圖形。因此在這個問題中,面試官想知道你在什麼時候選用哪種方式。
SVG | Canvas |
這個就好像繪製和記憶,換句話說任何使用SVG繪製的形狀都能被記憶和操作,瀏覽器可以再次顯示 | Canvas就像繪製和忘記,一旦繪製完成你不能訪問畫素和操作它 |
SVG對於建立圖形例如CAD軟體是良好的,一旦東西繪製,使用者就想去操作它 | Canvas在繪製和忘卻的場景例如動畫和遊戲是良好的 |
因為為了之後的操作,需要記錄座標,所以比較緩慢 | 因為沒有記住以後事情的意向,所以更快 |
我們可以用繪製物件的相關事件處理 | 我們不能使用繪製物件的相關事件處理,因為我們沒有他們的參考 |
解析度無關 | 解析度相關 |
如何使用Canvas和HTML5中的SVG去畫一個矩形?
HTML5使用SVG繪製矩形的程式碼
<svg xmlns="http://www.w3.org/2000/svg" version="1.1"> <rect style="fill: rgb(0, 0, 255); stroke-width: 1px; stroke: rgb(0, 0, 0);" height="[object SVGAnimatedLength]" width="[object SVGAnimatedLength]"> </rect>
HTML5使用Canvas繪製矩形的程式碼
var c=document.getElementById("mycanvas"); var ctx=c.getContext("2d"); ctx.rect(20,20,150,100); ctx.stroke();
CSS(cascading style sheets級聯樣式表)中的選擇器是什麼?
選擇器在你想應用一個樣式的時候,幫助你去選擇元素。舉例,下面是簡單的被命名為”instro”的樣式,他適用於HTML元素顯示紅色背景
<style> .intro{ background-color:red; } </style>
應用上面的”intro”樣式給div,我們可以使用”class”選擇器,如下圖所示
<div class="intro"> <p>My name is Shivprasad koirala.</p> <p>I write interview questions.</p> </div>
如何使用ID值來應用一個CSS樣式?
假設,你有一個HTML段落標籤,使用id是”mytext”,就和下面的片段中顯示的那樣
<p id="mytext">This is HTML interview questions.</p>
你可以使用”#”選擇器和”id”的名字建立一種樣式,並把CSS值應用到段落標籤中,因此應用樣式到”mytext”元素,我們可以使用”#mytext”,如下所示
<style> #mytext { background-color:yellow; } </style>
迅速修訂一些重要的選擇器
設定所有段落標籤背景色為黃色
div p { background-color:yellow; }
設定所有div內部的段落標籤為黃色背景
div p { background-color:yellow; }
設定所有div之後的段落標籤為黃色背景
div+p { background-color:yellow; }
設定所有含有“target”屬性的變為黃色背景
a[target] { background-color:yellow; } <a href="http://www.questpond.com">ASP.NET interview questions</a> <a href="http://www.questpond.com" target="_blank">c# interview questions</a> <a href="http://www.questpond.org" target="_top">.NET interview questions with answers</a>
當控制得到焦點的時候設定所有的元素為黃色背景
input:focus { background-color:yellow; }
根據相關連線操作設定超連結樣式
a:link {color:green;} a:visited {color:green;} a:hover {color:red;} a:active {color:yellow;}
CSS中使用列布局是什麼?
CSS列布局幫助你分割文字變為列,例如考慮下面的雜誌新聞在一個大的文字中,但是我們需要在他們之間使用邊界劃分為3列,這裡HTML5的列布局就有所幫助了
為了實現列布局我們需要指定以下內容
- 我們需要把text劃分為多少列
指定列數我們需要使用column-count,對於Chrome和firefox分別需要”webkit”和“moz-column”
-moz-column-count:3; /* Firefox */ -webkit-column-count:3; /* Safari and Chrome */ column-count:3;
- 兩列之間我們想要多少差距
-moz-column-gap:40px; /* Firefox */ -webkit-column-gap:40px; /* Safari and Chrome */ column-gap:20px;
你想在這些列之間畫一條線麼?如果是,那麼多厚呢?
-moz-column-rule:4px outset #ff00ff; /* Firefox */ -webkit-column-rule:4px outset #ff00ff; /* Safari and Chrome */ column-rule:6px outset #ff00ff;
以下是完整程式碼
<style> .magazine { -moz-column-count:3; /* Firefox */ -webkit-column-count:3; /* Safari and Chrome */ column-count:3; -moz-column-gap:40px; /* Firefox */ -webkit-column-gap:40px; /* Safari and Chrome */ column-gap:20px; -moz-column-rule:4px outset #ff00ff; /* Firefox */ -webkit-column-rule:4px outset #ff00ff; /* Safari and Chrome */ column-rule:6px outset #ff00ff; } </style>
你可以使用class屬性來應用樣式到文字
<div class="magazine"> Your text goes here which you want to divide in to 3 columns. </div>
你能解釋一下CSS的盒子模型麼?
CSS和模型是圍繞在HTML元素周圍的定義Border(邊界),padding(內邊距)和margin(外邊距)的矩形空間
Border(邊界):定義了元素包含的最大區域,我們能夠使邊界可見,不可見,定義高度和寬度等;
Padding(內邊距):定義了邊界和內部元素的間距
Margin:定義了邊界和任何相鄰元素的間距
例如以下是簡單的CSS程式碼定義了盒子的邊界,內邊距和外邊距值
.box { width: 200px; border: 10px solid #99c; padding: 20px; margin: 50px; }
現在如果我們應用了以上的CSS到一個如下顯示的DIV標籤,你輸出將會和下面圖形中顯示的那樣。我已經建立兩個測試“Some text”和“Some other text”,因此我們能看到多少margin(外邊距)的屬性功能
<div align="middle" class="box"> Some text </div> Some other text
你能解釋一些CSS3中的文字效果麼?
這裡面試官期待你回答兩個Css的文字效果,以下是兩種需要注意的效果
陰影文字效果
.specialtext { text-shadow: 5px 5px 5px #FF0000; }
文字包裝效果
<style> .breakword {word-wrap:break-word;} </style>
什麼是Web Workers?為什麼我們需要他們?
考慮以下會執行上百萬次的繁重的迴圈程式碼
function SomeHeavyFunction() { for (i = 0; i < 10000000000000; i++) { x = i + x; } }
比方說上面的迴圈程式碼在HTML按鈕點選以後執行,現在這個方法執行是同步的,換句話說這個瀏覽器必須等到迴圈完成才能操作
<input type="button" onclick="SomeHeavyFunction();" />
這個會進一步導致瀏覽器凍結並且沒有相應,螢幕還會顯示如下的異常資訊
如果你能移動這些繁重的迴圈到Javascript檔案中,採用非同步的方式執行,這意味著瀏覽器不需要等到迴圈接觸,我們可以有更敏感的瀏覽器,這就是web worker的作用
Web worker幫助我們用非同步執行Javascript檔案
Web Worker執行緒的限制是什麼?
Web worker執行緒不能修改HTML元素,全域性變數和Window.Location一類的視窗屬性。你可以自由使用Javascript資料型別,XMLHttpRequest呼叫等。
我們如何在JavaScript中建立一個worker執行緒?
建立一個worker執行緒,我們需要通過Javascript檔名建立worker物件
var worker = new Worker("MyHeavyProcess.js");
我們需要使用“PostMessage”傳送資訊給worker物件,下面是相同的程式碼。
worker.postMessage();
當worker執行緒傳送資料的時候,我們在呼叫結束的時候,通過”onMessage”事件獲取
worker.onmessage = function (e) { document.getElementById("txt1").value = e.data; };
這個繁重的迴圈在“MyHeavyProcess.js”的Javascript檔案中,以下程式碼,當Javascript檔案想傳送資訊,他使用”postmessage”,同時任何來自傳送者的資訊都在“onmessage”事件中接收到。
var x =0 self.onmessage = function (e) { for (i = 0; i < 1000000000; i++) { x = i + x; } self.postMessage(x); };
如何中止Web Worker?
w.terminate();
為什麼我們需要HTML5的服務傳送事件?
網路世界的普遍需求是從伺服器更新。以一個股票應用為例,瀏覽器必須定期從伺服器更新最新的股票值。
現在實現這類需求開發者通常寫一些PULL的程式碼,到伺服器同時抓取某些區間資料。現在PULL的解決方案是很好的,但是這使得網路健談有很多的呼叫,同時增加了伺服器的負擔。
因此相比於PULL,如果我們能採用某種PUSH的解決方案那會是很棒的。簡而言之,當伺服器更新的時候,將會傳送更新到瀏覽器客戶端,那可以被接受通過使用”SERVER SENT EVENT”
因此首要的是瀏覽器需要連線將會傳送更新的伺服器資源,比方說我們有一個”stock.aspx”頁面會傳送股票更新,因此連線該頁面,我們需要使用附加時間來源物件,如下所示:
var source = new EventSource("stock.aspx");
當我們將要接受伺服器傳送的更新資訊時,我們需要附加功能。我們需要附加功能到”onmessage”事件就像以下顯示的那樣。
source.onmessage = function (event) { document.getElementById("result").innerHTML += event.data + "<br>"; };
現在來自服務端,我們需要去傳送事件,下面是一些用命令需要從服務端傳送的重要事件列表
Event | Command |
傳送資料到客戶端 | data : hello |
告訴客戶端10s內重試 | retry : 10000 |
提出具體事件與資料 | event : successdata : You are logged in. |
因此,舉例說明,如果你想下面的ASP.NET程式碼一樣傳送資料,請標記內容型別設定給文字/事件
Response.ContentType="text/event-stream"; Response.Expires=-1; Response.Write("data: " + DateTime.Now.ToString()); Response.Flush();
以下是設定10s後重試的命令
Response.Write("retry: 10000");
如果你想附加事件,我們需要使用“addEventListener”事件,如下程式碼所示:
source.addEventListener('message', function(e) { console.log(e.data); }, false);
來自伺服器端的以下資訊將會觸發Javascript的”message”方法
event: message data : hello
HTML5中的本地儲存概念是什麼?
很多時候我們會儲存使用者本地資訊到電腦上,例如:比方說使用者有一個填充了一半的長表格,然後突然網路連線斷開了,這樣使用者希望你能儲存這些資訊到本地,當網路恢復的時候,他想獲取這些資訊然後傳送到伺服器進行儲存
現代瀏覽器擁有的儲存被叫做“Local Storage”,你可以儲存這些資訊。
我們如何從本地儲存中新增和移除資料?
資料新增到本地儲存採用鍵值對,以下示例顯示了城市資料”India”新增了鍵”Key001”
localStorage.setItem(“Key001”,”India”);
從本地儲存中檢索資料我們可以提供鍵名並使用”getItem”方法
var country = localStorage.getItem(“Key001”);
你也可以使用以下程式碼,儲存Javascript物件在本地儲存中
var country = {}; country.name = “India”; country.code = “I001”; localStorage.setItem(“I001”, country); var country1 = localStorage.getItem(“I001”);
如果你想儲存Json格式,你可以使用“JSON.stringify”方法,如下所示:
localStorage.setItem(“I001”,JSON.stringify(country));
本地儲存的生命週期是什麼?
本地儲存沒有生命週期,它將保留知道使用者從瀏覽器清除或者使用Javascript程式碼移除。
本地儲存和cookies(儲存在使用者本地終端上的資料)之間的區別是什麼?
Cookies | Local storage | |
客戶端/服務端 | 客戶端和服務端都能訪問資料。Cookie的資料通過每一個請求傳送到服務端 | 只有本地瀏覽器端可訪問資料,伺服器不能訪問本地儲存直到故意通過POST或者GET的通道傳送到伺服器 |
大小 | 每個cookie有4095byte | 每個域5MB |
過期 | Cookies有有效期,所以在過期之後cookie和cookie資料會被刪除 | 沒有過期資料,無論最後使用者從瀏覽器刪除或者使用Javascript程式刪除,我們都需要刪除 |
什麼是事務儲存?我們如何建立一個事務儲存?
會話儲存和本地儲存類似,但是資料在會話中有效,簡而言之資料在你關閉瀏覽器的時候就被刪除了。
為了建立一個會話儲存你需要使用“sessionStorage.variablename.”在以下的程式碼我們建立了一個名為”clickcount”的變數;
如果你重新整理瀏覽器則數目增加,但是如果你關閉瀏覽器,“clickcount”變數又會從0開始。
if(sessionStorage.clickcount) { sessionStorage.clickcount=Number(sessionStorage.clickcount)+1; } else { sessionStorage.clickcount = 0; }
本地儲存和事務儲存之間的區別是什麼?
本地儲存資料持續永久,但是會話在瀏覽器開啟時有效知道瀏覽器關閉時會話變數重置
什麼是WebSQL?
WebSQL是一個在瀏覽器客戶端的結構關聯式資料庫,這是瀏覽器內的本地RDBMS(關係型資料庫系統),你可以使用SQL查詢
WebSql是HTML5的一個規範嗎?
不是,許多人把它標記為HTML5,但是他不是HTML5的規範的一部分,這個規範是基於SQLite的
我們如何使用WebSQL?
第一步我們需要做的是使用如下所示的“OpenDatabase”方法開啟資料庫,第一個引數是資料庫的名字,接下來是版本,然後是簡單原文標題,最後是資料庫大小;
var db=openDatabase('dbCustomer','1.0','Customer app’, 2 * 1024 * 1024);
為了執行SQL,我們需要使用“transaction”方法,並呼叫”executeSql”方法來使用SQL
db.transaction(function (tx) { tx.executeSql('CREATE TABLE IF NOT EXISTS tblCust(id unique, customername)'); tx.executeSql('INSERT INTO tblcust (id, customername) VALUES(1, "shiv")'); tx.executeSql('INSERT INTO tblcust (id, customername) VALUES (2, "raju")'); }
萬一你要使用“select”查詢你會得到資料”result”集合,我們可以通過迴圈展示到HTML的使用者介面
db.transaction(function (tx) { tx.executeSql('SELECT * FROM tblcust', [], function (tx, results) { for (i = 0; i < len; i++) { msg = "<p><b>" + results.rows.item(i).log + "</b></p>"; document.querySelector('#customer).innerHTML += msg; } }, null); });
HTML5中的應用快取是什麼?
一個最需要的事最終是使用者的離線瀏覽,換句話說,如果網路連線不可用時,頁面應該來自瀏覽器快取,離線應用快取可以幫助你達到這個目的
應用快取可以幫助你指定哪些檔案需要快取,哪些不需要。
HTML5中我們如何實現應用快取?
首先我們需要指定”manifest”檔案,“manifest”檔案幫助你定義你的快取如何工作。以下是”mainfest”檔案的結構
CACHE MANIFEST # version 1.0 CACHE : Login.aspx
- 所有manifest檔案都以“CACHE MANIFEST”語句開始.
- #(雜湊標籤)有助於提供快取檔案的版本.
- CACHE 命令指出哪些檔案需要被快取.
- Mainfest檔案的內容型別應是“text/cache-manifest”.
以下是如何在ASP.NET C#使用manifest快取
Response.ContentType = "text/cache-manifest"; Response.Write("CACHE MANIFEST \n"); Response.Write("# 2012-02-21 v1.0.0 \n"); Response.Write("CACHE : \n"); Response.Write("Login.aspx \n"); Response.Flush(); Response.End();
建立一個快取manifest檔案以後,接下來的事情實在HTML頁面中提供mainfest連線,如下所示:
<html manifest="cache.aspx">
當以上檔案第一次執行,他會新增到瀏覽器應用快取中,在伺服器當機時,頁面從應用快取中獲取
我們如何重新整理瀏覽器的應用快取?
應用快取通過變更“#”標籤後的版本版本號而被移除,如下所示:
CACHE MANIFEST # version 2.0(new) CACHE : Login.aspx Aboutus.aspx NETWORK : Pages.aspx
應用快取中的回退是什麼?
應用快取中的回退幫助你指定在伺服器不可訪問的時候,將會顯示某檔案。例如在下面的manifest檔案中,我們說如果誰敲擊了”/home”同時伺服器不可到達的時候,”homeoffline.html”檔案應送達
FALLBACK: /home/ /homeoffline.html
應用快取中的網路是什麼?
網路命令描述不需要快取的檔案,例如以下程式碼中,我們說”home.aspx”永遠都不應該被快取或者離線訪問。
NETWORK: home.aspx
via:伯樂線上 - 某小浩 翻譯自 Shivprasad koirala。
相關文章
- 40 個重要的 HTML5 面試問題及答案HTML面試
- 前端知識科普:HTML5中重要的6個點!前端HTML
- 技術成長中的3個重要問題
- C#中的幾個簡單技術點C#
- HTML5中快取技術HTML快取
- 大資料三個重要的技術問題大資料
- 業務重要?還是技術重要?
- Web 開發中應用 HTML5 技術的10個例項教程WebHTML
- 【盤點】Python中6個最重要的庫!Python
- 大勢所趨 HTML5成Web開發者最關心的技術HTMLWeb
- 重要的技術創新節點容易發生在什麼地方?
- 10個最熱門的大資料技術大資料
- 年度大盤點:那些最值得你瞭解的容器技術
- 盤點人工智慧應用最廣的核心技術人工智慧
- 思想比技術更重要
- 區塊鏈技術中隱私計算的技術特點區塊鏈
- 機器學習:處理不平衡資料的5個重要技術機器學習
- 2個最重要的非技術性的軟體開發技能
- 重要揭秘!LAZARUS組織最新活動中的新型攻擊技術
- 榮耀Magic支援40W最牛X快充 快充技術逆天
- 蘋果 40 歲了,你該知道的 14 個重要事件蘋果事件
- 寶鯤財經:最基礎的炒匯技術盤點
- 【技術乾貨】盤點最流行的Web漏洞掃描工具!Web
- 20個最熱門的IT技術職位及薪資
- 技術到底重不重要
- 淺談HTML5中canvas中的beginPath()和closePath()的重要性HTMLCanvas
- MDM獲取UDID的幾個技術點
- 最牛逼的技術能力,是技術領導力
- 無線覆蓋技術的重要性
- LPWAN技術:物聯網的重要基礎
- 一場成功的技術面試的幾個關鍵點面試
- 史上最簡單的技術解讀,讓老婆都能學會的50個IT術語!
- 對程式設計師而言,學歷重要還是技術重要?程式設計師
- 量子點是什麼技術?最終形態QLED超OLED
- 技術人員的職位頭銜重要嗎
- 快速技術成長:提煉和總結專案中的技術重難點
- 讓每個企業用最簡單的方式享受IT技術的便利
- 程式設計師最容易犯的幾個技術上的錯誤程式設計師