<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          不敢相信,技術(shù)棧,居然被P站秒了

          共 2650字,需瀏覽 6分鐘

           ·

          2020-06-15 23:23

          PornHub的FE,分享了P站前端一些實踐,英文比較晦澀難懂,故翻譯整理了一下,很多同學(xué)對前端技術(shù)不是很熟悉,故加入了簡單解釋,希望對大家理解相關(guān)技術(shù)有幫助。


          提問:能分享一下,P站架構(gòu)使用了哪些技術(shù)棧么?

          ,除了大數(shù)據(jù)體系,都是比較常用的技術(shù)棧:

          (1)核心架構(gòu)采用的是Nginx,PHP,MySQL;

          (2)使用Memcached和Reids來做緩存;

          (3)使用Varnish來做頁面緩存加速;

          (4)使用ES來解決搜索問題;

          (5)服務(wù)用的是go;

          (6)大數(shù)據(jù)體系用的Vertica;

          畫外音:Vertica是一款基于列存儲的,支持PB級別結(jié)構(gòu)化數(shù)據(jù)存儲的數(shù)據(jù)庫。

          (7)前端NodeJS也有使用;


          提問:一個頁面至少包含一個視頻,一個GIF廣告,一些直播視頻的預(yù)覽,一些視頻的微縮圖,如何監(jiān)控頁面性能,如何找到花時間最長的地方?

          :我們使用第三方RUM(Real User Monitoring)來監(jiān)控頁面性能。

          42db230ee38f6153815aa7acfa749482.webp

          由于我們是國際性的大站,通過RUM監(jiān)控,能夠檢測到哪些地域流暢,哪些地域卡頓,哪些地域流量高,哪些地域沒有流量。

          畫外音,頁面性能監(jiān)控,常見的有兩種方式:

          (1)模擬性能監(jiān)控

          主要通過外部代理,模擬真實用戶行為(登陸,點擊等),執(zhí)行固定監(jiān)控腳本,收集頁面性能數(shù)據(jù)。這是國內(nèi)主流頁面性能監(jiān)控方式。

          (2)真實用戶性能監(jiān)控

          在用戶真實流量的過程中,加入了一些埋點,收集相關(guān)性能數(shù)據(jù)。這種方式的優(yōu)缺點都很明顯:優(yōu)點,代表最真實的用戶性能體驗;缺點,對用戶體驗有影響。


          至于找到頁面性能瓶頸,我們使用最常見的頁面抓包,看執(zhí)行時間“瀑布流”。


          提問:前端交互對P站來說尤為重要,你們?nèi)绾慰创岸思夹g(shù)的變化?哪些新的WebAPI最吸引你們?

          :我們在前端技術(shù)棧上做了很多改進。


          CSS層面,從最初的純CSS,到LESS,再到現(xiàn)在的Grid,用戶在觀看視頻的場景很多,我們必須適應(yīng)不同的分辨率和屏幕尺寸。

          畫外音:

          LESS(Leaner Style Sheets),是一門向后兼容的CSS擴展語言,它和CSS非常像,并對CSS增加了一些有用的擴展,例如:變量,混合(Mixins),嵌套,函數(shù),作用域,注釋等等一些特性。

          Grid,是目前最強大的CSS網(wǎng)格布局方案,它將網(wǎng)頁劃分成一個個網(wǎng)格,可以任意組合不同的網(wǎng)格,做出不同的布局。對跨終端,多屏幕適配尤為有效。


          JS層面,我們逐步淘汰了jQuery和jQuery UI,而使用Vanilla JS這款更加高效的JS框架。

          畫外音:Vanilla JS,世界上最輕量級的JS框架,沒有之一。特點是快速、輕量、跨平臺,可以用它快速構(gòu)建JS應(yīng)用程序。其官方網(wǎng)站是:

          http://vanilla-js.com/?

          別的JS庫都需要顯示引用地址,例如:

          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                    <th id="afajh"><progress id="afajh"></progress></th>
                    A片黄色电影免费观看 | 俺去俺来也www色官网黑人 | 果冻传媒堕落人妻四玛丽莲A - 神秘资源 | 日韩在线中文字幕视频 | 天天性爱网 |