用CSS開啟硬件加速提高網(wǎng)站性能

你知道我們可以在瀏覽器中用css開啟硬件加速,使GPU (Graphics Processing Unit) 發(fā)揮功能,從而讓渲染的性能更好嗎窝撵?

現(xiàn)在大多數(shù)電腦的顯卡都支持硬件加速,因此,我們可以利用GPU的能力掩完,在基于CPU運(yùn)行的瀏覽器上,讓我們的網(wǎng)站或應(yīng)用的性能更好硼砰。

在這篇文章中且蓬,我們將會(huì)在桌面端和移動(dòng)端上使用CSS硬件加速。

在桌面端和移動(dòng)端用CSS開啟硬件加速

想知道如何讓CSS動(dòng)畫在瀏覽器上運(yùn)行的很流暢嗎题翰?

CSS的animations恶阴、transforms以及transitions不會(huì)自動(dòng)開啟GPU加速,而是由瀏覽器的緩慢的軟件渲染引擎來執(zhí)行豹障。那我們?cè)鯓硬趴梢郧袚Q到GPU模式呢冯事,很多瀏覽器提供了某些觸發(fā)該模式的CSS規(guī)則。

現(xiàn)在血公,像Chrome昵仅、FireFox、Safari累魔、 IE9+和最新版本的Opera都支持硬件加速摔笤,當(dāng)它們檢測到頁面中某個(gè)DOM元素應(yīng)用了某些CSS規(guī)則時(shí)就會(huì)開啟,最顯著的象征就是元素的3D變換垦写。

例如:

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

在某些情況下吕世,我們并不想要對(duì)元素應(yīng)用3D變換的效果,但是仍然想發(fā)揮GPU加速的優(yōu)勢梯投。這時(shí)候我們可以使用個(gè)簡單的CSS屬性來"欺騙"瀏覽器命辖,觸發(fā)硬件加速。

雖然我們可能不想對(duì)元素應(yīng)用3D變換分蓖,可我們一樣可以開啟3D引擎尔艇。非常的簡單,用transform: translateZ(0);這個(gè)聲明可以觸發(fā)桌面端和移動(dòng)端的GPU加速么鹤,這是一個(gè)非常有效的方式(包含了所有的瀏覽器前綴)

   .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和Safari中终娃,當(dāng)我們使用CSStransforms或者animations時(shí)可能會(huì)出現(xiàn)頁面閃爍的效果,下面的代碼可以修復(fù)這個(gè)問題:

   .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內(nèi)核的瀏覽器中午磁,另一個(gè)行之有效的方法是

   .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 */
   }

原生的移動(dòng)端應(yīng)用總是可以很好的運(yùn)用GPU尝抖,這就是為什么它比網(wǎng)頁應(yīng)用(Web apps)表現(xiàn)更好的原因。硬件加速在移動(dòng)端尤其有用迅皇,因?yàn)樗梢杂行У臏p少資源的利用昧辽。

總結(jié)

只對(duì)我們需要實(shí)現(xiàn)動(dòng)畫效果的元素應(yīng)用以上方法,這能夠提高2D渲染的性能登颓,如果僅僅為了開啟硬件加速而在任何元素上使用搅荞,那是不明智的。

如果你需要獲得最好的性能體驗(yàn),小心的使用這些方法咕痛。過度的使用GPU可能會(huì)導(dǎo)致嚴(yán)重的性能問題痢甘,因?yàn)樗黾恿藘?nèi)存的使用––這將會(huì)減少移動(dòng)端設(shè)備的電池壽命。

你有在項(xiàng)目中使用過這些方法嗎茉贡?如果有塞栅,請(qǐng)分享你的精彩案例吧。

原文地址:http://blog.teamtreehouse.com/increase-your-sites-performance-with-hardware-accelerated-css

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末腔丧,一起剝皮案震驚了整個(gè)濱河市放椰,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌愉粤,老刑警劉巖砾医,帶你破解...
    沈念sama閱讀 217,657評(píng)論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異衣厘,居然都是意外死亡如蚜,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,889評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門影暴,熙熙樓的掌柜王于貴愁眉苦臉地迎上來错邦,“玉大人,你說我怎么就攤上這事坤检⌒诵桑” “怎么了?”我有些...
    開封第一講書人閱讀 164,057評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵早歇,是天一觀的道長。 經(jīng)常有香客問我讨勤,道長箭跳,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,509評(píng)論 1 293
  • 正文 為了忘掉前任潭千,我火速辦了婚禮谱姓,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘刨晴。我一直安慰自己屉来,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,562評(píng)論 6 392
  • 文/花漫 我一把揭開白布狈癞。 她就那樣靜靜地躺著茄靠,像睡著了一般。 火紅的嫁衣襯著肌膚如雪蝶桶。 梳的紋絲不亂的頭發(fā)上慨绳,一...
    開封第一講書人閱讀 51,443評(píng)論 1 302
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼脐雪。 笑死厌小,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的战秋。 我是一名探鬼主播璧亚,決...
    沈念sama閱讀 40,251評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼脂信!你這毒婦竟也來了涨岁?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,129評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤吉嚣,失蹤者是張志新(化名)和其女友劉穎梢薪,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體尝哆,經(jīng)...
    沈念sama閱讀 45,561評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡秉撇,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,779評(píng)論 3 335
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了秋泄。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片琐馆。...
    茶點(diǎn)故事閱讀 39,902評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖恒序,靈堂內(nèi)的尸體忽然破棺而出瘦麸,到底是詐尸還是另有隱情,我是刑警寧澤歧胁,帶...
    沈念sama閱讀 35,621評(píng)論 5 345
  • 正文 年R本政府宣布滋饲,位于F島的核電站,受9級(jí)特大地震影響喊巍,放射性物質(zhì)發(fā)生泄漏屠缭。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,220評(píng)論 3 328
  • 文/蒙蒙 一崭参、第九天 我趴在偏房一處隱蔽的房頂上張望呵曹。 院中可真熱鬧,春花似錦何暮、人聲如沸奄喂。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,838評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽跨新。三九已至,卻和暖如春贰军,著一層夾襖步出監(jiān)牢的瞬間玻蝌,已是汗流浹背蟹肘。 一陣腳步聲響...
    開封第一講書人閱讀 32,971評(píng)論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留俯树,地道東北人帘腹。 一個(gè)月前我還...
    沈念sama閱讀 48,025評(píng)論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像许饿,于是被迫代替她去往敵國和親阳欲。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,843評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容

  • 你知道我們可以在瀏覽器中用css開啟硬件加速陋率,使GPU (Graphics Processing Unit) 發(fā)揮...
    mervynyang閱讀 1,094評(píng)論 0 4
  • 問答題47 /72 常見瀏覽器兼容性問題與解決方案球化? 參考答案 (1)瀏覽器兼容問題一:不同瀏覽器的標(biāo)簽?zāi)J(rèn)的外補(bǔ)...
    _Yfling閱讀 13,751評(píng)論 1 92
  • 一:在制作一個(gè)Web應(yīng)用或Web站點(diǎn)的過程中,你是如何考慮他的UI瓦糟、安全性筒愚、高性能、SEO菩浙、可維護(hù)性以及技術(shù)因素的...
    Arno_z閱讀 1,157評(píng)論 0 1
  • 這是老盧堅(jiān)持100天微商筆記整理的第67天! 今天這篇文章跟你說說巢掺,商界大牛們?cè)谟脩艚?jīng)營方面有哪些值得借鑒的心法。...
    73feb922c323閱讀 314評(píng)論 0 1
  • 親愛的寶寶們 是不是年后綜合征還木有度過轧苫? 是不是兩眼昏花 感覺身體被掏空? 是不是正月十五 別人合家團(tuán)聚吃元宵 ...
    顧晴晞閱讀 186評(píng)論 0 0