三個不常見的 HTML5 實用新特性簡介
一、DNS 預解析緩存
眾所周知,解析 DNS 是網站性能優(yōu)化的比較重要的一部分,雖然加載時間不太長,但是很難壓縮起來。特別是為了并發(fā)下載資源而使用多個 CDN 域名來加載資源的大型網站,更不可忽視,每加載資源之前都要先進行 CDN 域名的 DNS 解析轉換。
如果采用 DNS 預加載,支持該功能的瀏覽器就會提前對該域名進行 DNS 解析并且緩存一下,而不會在需要請求資源再進行解析。而且這個功能應用實在是太簡單:
<link rel="dns-prefetch" >
<link rel="dns-prefetch" >
淘寶網就應用了這項技術,你可以打開淘寶網,查看源代碼,最頂端就把他們的一些 CDN 服務器進行了 DNS 解析緩存。
二、資源預加載
資源預加載有很多辦法,例如常見的圖片預加載,有采用 CSS 的背景圖片來預加載,大部分還是用 JS。目前 HTML5 提供了專門的資源預加載方法,有兩個屬性:prefetch(預讀取)和 prerender(預渲染),分別被 Firefox 和 Chrome 瀏覽器支持。
1).PREFETCH 預讀取
預讀取就是很常見的資源預加載,當前頁面加載完成之后,就會在后面偷偷的下載你指定的資源,一般是 JS 、CSS 和 圖片 這類的,也可以下載頁面:
<link rel="prefetch" />
<link rel="prefetch" />
<link rel="prefetch alternate stylesheet" href="mozspecific.css" />
注意,目前 Firefox 瀏覽器支持這個功能。
2).PRERENDER 預渲染
這個更厲害了,不僅偷偷的提前下載,而且還給你渲染出來,當用戶點擊鏈接的時候,立刻給你展現(xiàn)出來。
注意,目前 Chrome 支持這個功能。
搜素引擎其實是最需要這種預讀取的功能的,因為他們非常確定用戶下一步要打開的頁面(搜索結果頁面),所以當用戶輸入搜索內容的時候,就可以提前把搜索結果頁面的資源提前加載,而且應用之后,效果十分明顯。
目前兼容性是個缺點,貌似只有 Chrome 和 Firefox 支持,而且用的 rel 屬性是不同的,如果你想同時兼容兩個瀏覽器,可以寫成下面這樣:
此外,當然為了安全沒法跨域預加載資源,可能沒法用在 CDN 了。
三、Download 屬性
HTML5 的 Download 屬性用來強制瀏覽器下載對應文件,而不是打開。Chrome 和 Firefox 等瀏覽器太過于強大,也許是為了增強用戶體驗,當用戶點擊的資源文件可以被它們識別的時候(例如 pdf 會直接在瀏覽器打開,mp3、mp4 等媒體直接用瀏覽器內置播放器播放)。但有時候,用戶其實是希望直接下載而不是在瀏覽器上看看,這時就可以加上這個屬性,屬性值會對下載的文件重命名:
<a href="downloadpdf.php" download="download.pdf">點擊直接下載并保存成 download.pdf 文件</a>
如果你確定這個資源是用戶肯定會下載的,就可以加上這個屬性,還可以用 JS 或者手動改變想要保存的文件名。
HTML5 還有很多其他特性,但是看了很長時間書和各種資料,很少見到上面三個又比較實用的屬性,拿出來分享一下。
相關文章
firefox下rowspan+border+border-collapse的bug
好久沒有發(fā)相關瀏覽器的坑了。今天同事cy發(fā)現(xiàn),在firefox里rowspan不生效...2010-02-02Cookie的secure屬性引起單點登錄中的循環(huán)登錄問題
在實施單點登錄(SSO)時,可能會遇到循環(huán)登錄問題,導致用戶無法正常使用系統(tǒng),本文首先介紹了單點登錄的基本概念和實現(xiàn)原理,然后詳細分析了循環(huán)登錄的產生原因,主要是由于Cookie的Secure屬性設置不當,在使用HTTP訪問時Cookie無法被傳遞導致2024-09-09CSSvista可同時在IE和Fifrefox調試的CSS編輯提供下載
CSSvista:可同時在IE和Fifrefox調試的CSS編輯器 CSSvista是一個免費的Windows增強應用程序,為Web開發(fā)人員準備的一個CSS編輯器。它可以讓你同時在IE和Firefox下調試你的CSS樣式表代碼。2008-06-06