這篇文章帶給大家的內容是關於HTML5中一些可以優化的細節介紹,有一定的參考價值,有需要的朋友可以參考一下,希望對你有幫助。
介紹一些最近整理的最佳化細節。圖片壓縮什麼的就不說了,這是優化必須做的。今天就說一下大家寫程式碼時可以培養的優化的細節點。
不濫用float。不濫用web字體。
Float渲染時計算量比較大,並且會脫標、塌陷。我們可以用flex佈局來代替。 web字體引入需要不小的消耗,最好跟設計提一下不要太多。
css中避免多餘的樣式設定。
color、font、line-height等都是可以繼承的,所以他們的子元素如果屬性一樣就要重複寫了,特別是font-family。
複雜的一個方法,可以快取函數的回傳值。
function cached (fn) { var cache = Object.create(null); return (function cachedFn (str) { var hit = cache[str]; return hit || (cache[str] = fn(str)) }) }; var fk = function (str) { return str.charAt(0).toUpperCase() + str.slice(1) } var cacheFk = cached(fk) // 1 step cacheFk('ui') //2 step cacheFk('ui')
這是我看vue原始碼時發現的一段程式碼,作用就是可以快取一個複雜函數的值,如果參數一樣就不重複計算。但這裡要注意的是,這個快取函數是透過閉包來做的,所以要做一些權衡。
盡量減少layout。
// 触发两次 layout var newWidth = p.offsetWidth + 50; p.style.width = newWidth + 'px'; var newHeight = p.offsetHeight + 50; p.style.height = newHeight + 'px'; // 只触发一次 layout var newWidth = p.offsetWidth + 50; var newHeight = p.offsetHeight + 50; p.style.width = newWidth + 'px'; p.style.height = newHeight + 'px';
所有可觸發layout的操作都會被暫時放入layout-queue 中,等到必須更新的時候,再計算整個隊列中所有操作影響的結果,如此就可只進行一次的layout,從而提升效能。
動畫元素最好脫標,不影響其他模組。這樣也是為了不影響其他元素。
transform代替position。
做一些css位移效果,最好用transform而不要用定位。我剛入門的時候用position做動畫卡的一匹~~~
選擇dom元素使用id,但不要為設定css而定義id。
如果用id選擇器,就不要加其他class約束。定義過多id會使重用性降低,維護更困難,所以css中不建議多用id。
多次使用length的時候,要用變數儲存。
var len = dom.length; for(var i = 0;i <p>這樣好處就是每次循環,不用都計算dom的長度了。 </p>
requestAnimationFrame取代setTimeout
var start = null; var element = document.getElementById('SomeElementYouWantToAnimate'); element.style.position = 'absolute'; function step(timestamp) { if (!start) start = timestamp; var progress = timestamp - start; element.style.left = Math.min(progress / 10, 200) + 'px'; if (progress <p>requestAnimationFrame就是不用設定時間的定時器,每1/60s執行一次,這是根據瀏覽器刷新幀數來定的。但兼容是個問題,用的話需要寫好兼容。 </p>
如果可以,盡量避免全域查找。
//dom = document.querySelector("#id"); function test() { dom = document.querySelector("#id"); }
例如上面的,如果只做test內使用dom 就不要在全域定義,因為執行的時候會現在test函數內部作用域查找,速度會快。
除非不知道遍歷的長度或遍歷物件不要用for in
function t1(){ //20ms var i = 0; for(item in anObj) { i++ } if( i === 100000){ console.log('for in ok') } } function t2(){ //4ms var len = anObj.length; var i = 0; for(var i = 0 ;i <p>這是我自己試驗循環100000個元素的數組,得出的執行時間(看程式碼)。所以最好別用,一般實際上也不會用到遍歷物件。如果真有特殊狀況遍歷對象,也要注意 ! ! !遍歷出來的東西是不是自己。以為for in是會遍歷其原型鏈的。 </p>
骨架螢幕
這個是增強使用者體驗,類似增強版loading。有自動化生成方案。有興趣可以看看。
ios禁止頁面辨識手機號碼。 Android禁止識別郵箱。
<meta> <meta>
頭部css 底部js。
這個大家都知道,js會阻塞解析dom,增加白螢幕時間。所以一定要注意啊。
其實優化的細節很多,所以要好好培養自己的程式設計習慣,積少成多,慢慢的不斷積累,程式碼的品質一定就不同了。
#以上是HTML5中一些可以優化的細節介紹的詳細內容。更多資訊請關注PHP中文網其他相關文章!

H5的高級技巧包括:1.利用進行複雜圖形繪製,2.使用WebWorkers提升性能,3.通過WebStorage增強用戶體驗,4.實現響應式設計,5.利用WebRTC實現實時通信,6.進行性能優化和最佳實踐。這些技巧幫助開發者構建更動態、互動和高效的Web應用。

H5(HTML5)將通過新元素和API提升網頁內容和設計。 1)H5增強了語義化標記和多媒體支持。 2)它引入了Canvas和SVG,豐富了網頁設計。 3)H5的工作原理是通過新標籤和API擴展HTML功能。 4)基本用法包括使用創建圖形,高級用法涉及WebStorageAPI。 5)開發者需注意瀏覽器兼容性和性能優化。

H5帶來了多項新功能和能力,極大提升了網頁的互動性和開發效率。 1.語義化標籤如、增強了SEO。 2.多媒體支持通過和標籤簡化了音視頻播放。 3.Canvas繪圖提供了動態圖形繪製工具。 4.本地存儲通過localStorage和sessionStorage簡化了數據存儲。 5.地理位置API便於開發基於位置的服務。

HTML5帶來了五個關鍵改進:1.語義化標籤提升了代碼清晰度和SEO效果;2.多媒體支持簡化了視頻和音頻嵌入;3.表單增強簡化了驗證;4.離線與本地存儲提高了用戶體驗;5.畫布與圖形功能增強了網頁的可視化效果。

HTML5的核心特性包括語義化標籤、多媒體支持、離線存儲與本地存儲、表單增強。 1.語義化標籤如、等,提升代碼可讀性和SEO效果。 2.和標籤簡化多媒體嵌入。 3.離線存儲和本地存儲如ApplicationCache和LocalStorage,支持無網絡運行和數據存儲。 4.表單增強引入新輸入類型和驗證屬性,簡化處理和驗證。

H5提供了多種新特性和功能,極大地增強了前端開發的能力。 1.多媒體支持:通過和元素嵌入媒體,無需插件。 2.畫布(Canvas):使用元素動態渲染2D圖形和動畫。 3.本地存儲:通過localStorage和sessionStorage實現數據持久化存儲,提升用戶體驗。

H5和HTML5是不同的概念:HTML5是HTML的一個版本,包含新元素和API;H5是基於HTML5的移動應用開發框架。 HTML5通過瀏覽器解析和渲染代碼,H5應用則需要容器運行並通過JavaScript與原生代碼交互。

HTML5的關鍵元素包括、、、、、等,用於構建現代網頁。 1.定義頭部內容,2.用於導航鏈接,3.表示獨立文章內容,4.組織頁面內容,5.展示側邊欄內容,6.定義頁腳,這些元素增強了網頁的結構和功能性。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

WebStorm Mac版
好用的JavaScript開發工具

SublimeText3 英文版
推薦:為Win版本,支援程式碼提示!

EditPlus 中文破解版
體積小,語法高亮,不支援程式碼提示功能

ZendStudio 13.5.1 Mac
強大的PHP整合開發環境

Atom編輯器mac版下載
最受歡迎的的開源編輯器