1. 程式人生 > >用CSS開啟硬體加速來提高網站效能

用CSS開啟硬體加速來提高網站效能

國外一篇文章,有點意思,轉載過來,準備嘗試下~

你知道我們可以在瀏覽器中用css開啟硬體加速,使GPU (Graphics Processing Unit) 發揮功能,從而提升效能嗎?

現在大多數電腦的顯示卡都支援硬體加速。鑑於此,我們可以發揮GPU的力量,從而使我們的網站或應用表現的更為流暢。

在桌面端和移動端用CSS開啟硬體加速

CSS animations, transforms 以及 transitions 不會自動開啟GPU加速,而是由瀏覽器的緩慢的軟體渲染引擎來執行。那我們怎樣才可以切換到GPU模式呢,很多瀏覽器提供了某些觸發的CSS規則。

現在,像Chrome, FireFox, Safari, IE9+和最新版本的Opera都支援硬體加速,當它們檢測到頁面中某個DOM元素應用了某些CSS規則時就會開啟,最顯著的特徵的元素的3D變換。

例如:

.cube {
   -webkit-transform: translate3d(250px,250px,250px)
   rotate3d(250px,250px,250px,-120deg)
   scale3d(0.5, 0.5, 0.5);
}

可是在一些情況下,我們並不需要對元素應用3D變換的效果,那怎麼辦呢?這時候我們可以使用個小技巧“欺騙”瀏覽器來開啟硬體加速。

雖然我們可能不想對元素應用3D變換,可我們一樣可以開啟3D引擎。例如我們可以用transform: translateZ(0); 來開啟硬體加速 。

.cube {
   -webkit-transform
: translateZ(0); -moz-transform: translateZ(0); -ms-transform: translateZ(0); -o-transform: translateZ(0); transform: translateZ(0); /* Other transform properties here */ }

在 Chrome and Safari中,當我們使用CSS transforms 或者 animations時可能會有頁面閃爍的效果,下面的程式碼可以修復此情況:

.cube {
   -webkit-backface-visibility
: hidden; -moz-backface-visibility: hidden; -ms-backface-visibility: hidden; backface-visibility: hidden; -webkit-perspective: 1000; -moz-perspective: 1000; -ms-perspective: 1000; perspective: 1000; /* Other transform properties here */ }

在webkit核心的瀏覽器中,另一個行之有效的方法是

.cube {
   -webkit-transform: translate3d(0, 0, 0);
   -moz-transform: translate3d(0, 0, 0);
   -ms-transform: translate3d(0, 0, 0);
   transform: translate3d(0, 0, 0);
  /* Other transform properties here */
}

原生的移動端應用(Native mobile applications)總是可以很好的運用GPU,這是為什麼它比網頁應用(Web apps)表現更好的原因。硬體加速在移動端尤其有用,因為它可以有效的減少資源的利用(麥時注:移動端本身資源有限)。

總結

只對我們需要實現動畫效果的元素應用以上方法,如果僅僅為了開啟硬體加速而隨便亂用,那是不明智的。

小心使用這些方法,如果通過你的測試,結果確是提高了效能,你才可以使用這些方法。使用GPU可能會導致嚴重的效能問題,因為它增加了記憶體的使用,而且它會減少移動端裝置的電池壽命。

你有在專案中使用過這些方法嗎?如果有,請分享你的精彩案例吧。

相關推薦

CSS開啟硬體加速提高網站效能(轉) CSS開啟硬體加速提高網站效能(轉)

用CSS開啟硬體加速來提高網站效能(轉) 翻譯文章,原文地址:http://blog.teamtreehouse.com/increase-your-sites-performance-with-hardware-accelerated-css。 你知道我們可以在瀏覽器中用css開啟硬體加速,使G

CSS開啟硬體加速提高網站效能

國外一篇文章,有點意思,轉載過來,準備嘗試下~ 你知道我們可以在瀏覽器中用css開啟硬體加速,使GPU (Graphics Processing Unit) 發揮功能,從而提升效能嗎? 現在大多數電腦的顯示卡都支援硬體加速。鑑於此,我們可以發揮GPU的力量,從而使我們的網站或應用表現的更為流暢

CSS開啟硬體加速提高網站效能(轉)

你知道我們可以在瀏覽器中用css開啟硬體加速,使GPU (Graphics Processing Unit) 發揮功能,從而提升效能嗎? 現在大多數電腦的顯示卡都支援硬體加速。鑑於此,我們可以發揮GPU的力量,從而使我們的網站或應用表現的更為流暢。 在桌面端和移動端用CSS開啟硬體加速 CSS an

【譯】CSS屬性選擇器拼接HTML的DNA

原文連結:www.smashingmagazine.com/2018/10/att… CSS屬性選擇器非常神奇,它們可以幫你避免新增數不勝數的類名,從另一方面來指出你程式碼裡的一些問題。但是大家不用慌,雖然屬性選擇器複雜且強大,但是很易於學習和使用。在這篇文章,我們將討論它們是如何執行起來的,再教大家

開啟硬體加速 導致花屏問題 OpenGlRenderer 0x506 解決辦法

(150114_17:08:32.461)I/dalvikvm-heap( 850): Grow heap (frag case) to 10.342MB for 2457616-byte allocation (150114_17:08:32.542)D/dalvik

關於修改虛擬機器記憶體,和開啟硬體加速

昨晚回覆了一個帖子,內容比較經典,所以特開一貼,大家可以研究一下! 主要是機子裡的關於系統性能的2個引數: 1.  debug.sf.hw=0,修改為debug.sf.hw=1,此步驟為開啟硬體加速 2.  dalvik.vm.heapsize=24m,修改為dalvik

Webview在RecyclerView中開啟硬體加速閃屏問題解決

在專案中遇到一個問題:把Webview作為header加在Recyclerview中,開啟硬體加速後,錘子手機閃屏嚴重,其他手機有閃屏,不算嚴重。但是關閉硬體加速網頁會很卡,一直對於硬體加速閃屏問題不知怎麼解決,嘗試直接關閉Webview的硬體加速,但出現白

提高網站效能的常見方法

一.Web前端效能優化 一般來說Web前端指網站業務邏輯之前的部分,包括瀏覽器載入,網站檢視模型,圖片服務,CDN服務等,主要優化手段有優化瀏覽器訪問,使用反向代理,CDN等。 1..瀏覽器訪問優化 (1)減少http請求 HTTP協議是無狀態的應用層協議,意味著每次HTTP請求都需要簡歷通訊鏈路,

SpringBoot2使用Undertow提高應用效能(spring-boot-starter-undertow)

Undertow Undertow是一個Java開發的靈活的高效能Web伺服器,提供包括阻塞和基於NIO的非阻塞機制。Undertow是紅帽公司的開源產品,是Wildfly預設的Web伺服器。 SpringBoot2中可以將Web伺服器切換到Undertow來提高應用效能。 Un

使用ViewStub提高載入效能吧!

什麼是ViewStub? ViewStub其實本質上也是一個View,其繼承關係如圖所示: 為什麼ViewStub可以提高載入效能? ViewStub使用的是惰性載入的方式,即使將其放置於佈局檔案中,如果沒有進行載入那就為空,不像其它控制元件一樣只

Nginx反向代理能否提高網站效能

1)很多Web伺服器或容器都可以實現反向代理; 2)反向代理和網站效能的提升沒有必然關係! 反向代理並不一定能提升網站效能

GitHub Pages搭建網站(Godaddy域名解析問題)

按照網上的部落格說的一步一步操作了:可是發現還是不行!因為GitHub Pages 的提供的 ip變了,不再是192.30.252.135和192.30.252.135;現在變成了下圖的地址,希望大家別再遇到這個坑,參考文章地址(https://help.github.com/articles/

儘量CSS描述修飾頁面

在設計程式的時候,我們鼓勵多用css,少用直接在html標籤裡指定屬性的方法。 例如: <input type="text" width="100" height="20" value=""/> 我們推薦多用style之類的來修飾,改成: <input type="

CSS :focus偽類和JS focus事件提高網站鍵盤可訪問性

鍵盤訪問網站的常用操作包括: Tab鍵索引控制元件元素; Enter鍵觸發當前處於focus狀態的點選行為; 上下鍵上下滾動網頁; Space空白鍵滾動一屏網頁; Home鍵返回頂部; End鍵滾動到底部; 一般的操作行為是這樣的,先Tab

CSS 而不是Table製作圓角框

<div style="BACKGROUND: #ccff66"> <div style="BACKGROUND: url(/imgs/pic_01.gif) no-repeat left top; WIDTH: 45%"> <div style="BACKGROUND: u

Windows 2008 / 2008 R2 開啟顯示卡硬體加速

 通過修改登錄檔項實現: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Video\{187826E1-5903-40A9-BA63-0ED7D45282A8}\0000 檢視右邊的鍵值型別為 REG_DWOR

HTML常用的特殊符號總結 2014年9月12日 22704次瀏覽 html中經常會到一些特殊符號,例如箭頭,雪花,心形等等,這些符號就不用css樣式或者圖片寫了,直接用html特殊符號可以實現。

html中經常會用到一些特殊符號,例如箭頭,雪花,心形等等,這些符號就不用css樣式或者圖片來寫了,直接用html特殊符號可以實現。 例如,如下html程式碼: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://w

網頁圖片壓縮優化,提高網站開啟速度

最大程度的壓縮了網頁大小,提高訪問者的使用者體驗。對於一個網站而言,頁面的開啟速度是至關重要的。它不僅直接影響到該網站在搜尋引擎中的排名引數,更為重要的是,會減緩訪客的頁面開啟速度。 圖片優化基本原則: 一、圖片裁切 切圖時儘量貼合圖形區,避免空白區域佔用檔案大小。 二、圖片縮放 通常情況下,數碼相

Nginx 如何 開啟gzip 提高頁面載入速度

環境:CentOS7.x 1、開啟Nginx配置檔案vi /etc/nginx/nginx.conf或者 vi /etc/nginx/conf.d/gzip.conf兩種方法取一種即可。如果原來的系統已有/etc/nginx/conf.d/gzip.conf,則必須修改該檔案

Python提高我的工作效率

大家都說Python簡潔高效,我也得學會用她來提高我的做事效率。哈哈[quote]From: http://www.woodpecker.org.cn:9081/doc/abyteofpython_cn/chinese/ch01s04.html讀一下像ESR這樣的超級電腦高手