Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 高清不卡毛片免费观看,国产精品久久亚洲不卡4k岛国,国产成人艳妇在线观看

          整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          PostCSS-css必備

          PostCSS-css必備

          ostcss越來越重要了,經常可以看到它的身影,比如面試,論壇。本篇文章是小編參考多方資料以及官網總結出來的,不喜勿噴,喜歡多多支持,謝謝!

          另外 React Redux ES6 Webpack...... 更多干貨在個人主頁中查看

          什么是postcss

          postcss 一種對css編譯的工具,類似babel對js的處理,常見的功能如:

          1 . 使用下一代css語法

          2 . 自動補全瀏覽器前綴

          3 . 自動把px代為轉換成rem(rem不熟悉的,點這)

          4 . css 代碼壓縮等等

          postcss 只是一個工具,本身不會對css一頓操作,它通過插件實現功能,autoprefixer 就是其一。

          與 less sass 的區別

          less sass 是預處理器,用來支持擴充css語法。

          postcss 既不是 預處理器也不是 后處理器,其功能比較廣泛,而且重要的一點是,postcss可以和less/sass結合使用

          關于取舍

          雖然可以結合less/sass使用,但是它們還是有很多重復功能,用其中一個基本就 ok 了。

          以下是個人的總結:

          • postcss 鼓勵開發者使用規范的CSS原生語法編寫源代碼,支持未來的css語法,就像babel支持ES6。

          • less、sass 擴展了原生的東西,它把css作為一個子集,但這不好保持向后兼容。

          總體來說區別不大,看個人喜好吧

          如何使用

          這里只說在webpack里集成使用,首先需要 loader

          1 . 安裝

          npm install postcss-loader –save-dev

          2 . webpack配置

          一般與其他loader配合使用,下面*標部分才是postcss用到的

          配合時注意loader的順序(從下面開始加載)

          3 . postcss配置

          項目根目錄新建 postcss.config.js文件,里面配置一些插件

          注:也可以在webpack中配置

          常用的postcss插件

          1 . Autoprefixer

          前綴補全,全自動的,無需多說

          安裝:

          cnpm install Autoprefixer --save-dev

          2 . postcss-cssnext

          使用下個版本的css語法【關于語法另一篇文章會單獨講】

          安裝:

          cnpm install postcss-cssnext --save-dev

          3 . postcss-pxtorem

          把px轉換成rem

          安裝:

          cnpm install postcss-pxtorem --save-dev

          配置項:

          特殊技巧:不轉換成rem

          px檢測區分大小寫,也就是說Px/PX/pX不會被轉換,可以用這個方式避免轉換成rem

          下篇:cssnext,下一代css

          【關注一下不迷路】

          html css html css javascript html javascript css javascript css

          比于早些年前后端代碼緊密耦合、后端工程師還得寫前端代碼的時代,如今已發展到前后端分離,這種開發方式大大提升了前后端項目的可維護性與開發效率,讓前后端工程師關注于自己的主業。然而在帶來便利的同時,也帶來了一些弊端,比如首屏渲染時間(FCP)因為首屏需要請求更多內容,比原來多了更多HTTP的往返時間(RTT),這造成了白屏,如果白屏時間過長,用戶體驗會大打折扣,如果用戶網速差,則FCP會更長。

          1. FCP優化

          在 Google 提出的以用戶為中心的四個頁面性能衡量指標中,FP/FCP可能是開發者們最熟悉的了

          為了優化首屏渲染時間這個指標,減少白屏時間,前端仔們想了很多辦法:

          • 加速或減少HTTP請求損耗:使用CDN加載公用庫,使用強緩存和協商緩存,使用域名收斂,小圖片使用Base64代替,使用Get請求代替Post請求,設置 Access-Control-Max-Age 減少預檢請求,頁面內跳轉其他域名或請求其他域名的資源時使用瀏覽器prefetch預解析等;
          • 延遲加載:非重要的庫、非首屏圖片延遲加載,SPA的組件懶加載等;
          • 減少請求內容的體積:開啟服務器Gzip壓縮,JS、CSS文件壓縮合并,減少cookies大小,SSR直接輸出渲染后的HTML等;
          • 瀏覽器渲染原理:優化關鍵渲染路徑,盡可能減少阻塞渲染的JS、CSS;
          • 優化用戶等待體驗:白屏使用加載進度條、菊花圖、骨架屏代替等;

          這里要介紹的就是優化用戶等待體驗的骨架屏,它可以被視為是原來加載菊花圖的一種升級版,結合傳統的首屏優化方法對應用進行優化可以達到不錯的效果。

          2. 骨架屏

          骨架屏可以理解為是當數據還未加載進來前,頁面的一個空白版本,一個簡單的關鍵渲染路徑。可以看一下下面Facebook的骨架屏實現,可以看到在頁面完全渲染完成之前,用戶會看到一個樣式簡單,描繪了當前頁面的大致框架的骨架屏頁面,然后骨架屏中各個占位部分被實際資源完全替換,這個過程中用戶會覺得內容正在逐漸加載即將呈現,降低了用戶的焦躁情緒,使得加載過程主觀上變得流暢。

          可以看一下下面的示例圖,第一個為骨架屏,第二個為菊花圖,第三個為無優化,可以看到相比于傳統的菊花圖會在感官上覺得內容出現的流暢而不突兀,體驗更加優良。

          如今這項技術已經在Facebook、Google、支付寶、餓了么、簡書、新浪微博、知乎、美團、領英等公司的產品中被廣泛的使用。在論壇和社區也都有不少文章討論骨架屏的實現和使用場景等。

          3. 生成骨架屏的方法

          生成骨架屏的方式主要有:

          1. 手寫HTML、CSS的方式為目標頁定制骨架屏 做法可以參考<Vue頁面骨架屏注入實踐>,主要思路就是使用 vue-server-renderer 這個本來用于服務端渲染的插件,用來把我們寫的.vue文件處理為HTML,插入到頁面模板的掛載點中,完成骨架屏的注入。這種方式不甚文明,如果頁面樣式改變了,還得改一遍骨架屏,增加了維護成本。 骨架屏的樣式實現參考 CodePen
          2. 使用圖片作為骨架屏; 簡單暴力,讓UI同學花點功夫吧哈哈;小米商城的移動端頁面采用的就是這個方法,它是使用了一個Base64的圖片來作為骨架屏。
          3. 自動生成并自動插入靜態骨架屏 這種方法跟第一種方法類似,不過是自動生成骨架屏,可以關注下餓了么開源的插件 page-skeleton-webpack-plugin ,它根據項目中不同的路由頁面生成相應的骨架屏頁面,并將骨架屏頁面通過 webpack 打包到對應的靜態路由頁面中,不過要注意的是這個插件目前只支持history方式的路由,不支持hash方式,且目前只支持首頁的骨架屏,并沒有組件級的局部骨架屏實現,作者說以后會有計劃實現(issue9)。

          另外還有個插件 vue-skeleton-webpack-plugin,它將插入骨架屏的方式由手動改為自動,原理在構建時使用 Vue 預渲染功能,將骨架屏組件的渲染結果 HTML 片段插入 HTML 頁面模版的掛載點中,將樣式內聯到 head 標簽中。這個插件可以給單頁面的不同路由設置不同的骨架屏,也可以給多頁面設置,同時為了開發時調試方便,會將骨架屏作為路由寫入router中,可謂是相當體貼了。

          vue-skeleton-webpack-plugin的具體使用參考 vue-style-codebase,主要關注build目錄的幾個文件,線上Demo 在Chrome的DevTools中把network的網速調為Gast 3G / Slow 3G就能看到效果了~


          鏈接文章:

          https://juejin.im/post/5b79a2786fb9a01a18267362

          聊聊圖片預加載:提升用戶體驗與性能的秘密武器

          **引言:**

          在Web前端開發中,圖片資源的加載速度直接影響著用戶體驗和頁面性能。尤其是在涉及到大量圖片展示的網站或應用中,圖片預加載作為一種優化手段顯得尤為重要。本文將詳細介紹圖片預加載的原理、應用場景、實現方法以及相關注意事項,并通過具體的HTML+JS代碼實例,讓你深入了解如何運用預加載技術改善用戶的瀏覽體驗。

          ---

          ### **一、什么是圖片預加載?**

          **標題:未雨綢繆,提前加載的背后邏輯**

          圖片預加載是指在用戶實際查看圖片之前,預先將圖片資源加載到瀏覽器緩存中。這樣當用戶瀏覽到對應位置時,圖片已經處于可用狀態,從而避免了圖片加載導致的頁面空白或延遲現象,顯著提升了頁面的流暢性和整體性能。

          ---

          ### **二、圖片預加載的重要性**

          **標題:瞬間加載,用戶體驗的飛躍**

          1. **更快的視覺呈現**:預加載能夠確保圖片在用戶視線到達前就已經準備好,減少用戶等待圖片加載的時間,提供即視即所得的瀏覽體驗。

          2. **優化頁面滾動流暢性**:對于長頁面和圖片瀑布流等場景,預加載能夠消除滾屏時的圖片加載滯后問題,確保頁面滾動過程平滑無阻。

          3. **降低用戶跳出率**:快速加載的內容能夠增加用戶留存,減少因等待時間過長而導致的用戶流失。

          ---

          ### **三、圖片預加載的實現方法**

          **標題:實戰演練,手把手教你實現預加載**

          1. **HTML `<link rel="prefetch">` 方式**

          ```html

          <link rel="prefetch" href="image.jpg">

          ```

          `rel="prefetch"` 屬性告訴瀏覽器在閑置時預先下載指定資源,適用于瀏覽器支持的情況下對將來可能訪問的資源進行預加載。

          2. **JavaScript 實現預加載**

          ```javascript

          // 基礎圖片預加載函數

          function preloadImages(urls) {

          urls.forEach(function(url) {

          var img=new Image();

          img.src=url;

          });

          }

          // 使用預加載函數

          var imageUrls=['image1.jpg', 'image2.jpg'];

          preloadImages(imageUrls);

          ```

          上述JavaScript代碼中,我們通過創建新的`Image`對象并設置其`src`屬性為待加載圖片URL的方式實現預加載。當瀏覽器解析到這一行代碼時,就會立即發送請求加載圖片資源。

          3. **更進階的預加載庫(如lozad.js)**

          ```html

          <!-- 引入lozad.js庫 -->

          <script src="https://cdn.jsdelivr.net/npm/lozad/dist/lozad.min.js"></script>

          <!-- 使用lozad.js進行懶加載 -->

          <img

          data-src="image.jpg"

          class="lozad"

          alt="Example Image"

          />

          ```

          Lozad.js是一個輕量級的懶加載庫,它能夠在圖片進入可視區時才進行加載,既實現了預加載的目的,又節省了帶寬和CPU資源。

          ---

          ### **四、圖片預加載的注意事項**

          **標題:謹慎而行,預加載的合理應用**

          1. **合理安排預加載數量**:過多的預加載可能導致帶寬占用過高,影響其他關鍵資源加載速度。

          2. **判斷用戶網絡狀況**:在低速網絡環境下,避免無腦預加載,可采用動態加載策略。

          3. **隱私保護與資源優化**:尊重用戶隱私,避免預加載無關緊要的資源,同時對圖片進行壓縮和尺寸裁剪,減輕預加載負擔。

          ---

          **結語:**

          圖片預加載作為Web前端優化的一項關鍵技術,巧妙運用可以顯著提升用戶體驗,降低用戶流失率。在實踐中,我們要根據具體項目需求和用戶場景,靈活選擇合適的預加載策略,做到既能加速頁面渲染,又能兼顧性能與資源優化,達到提升網站整體表現的終極目標。而不斷精進和深化前端優化技術,正是每一位前端開發者追求卓越的必由之路。


          主站蜘蛛池模板: 国产成人高清精品一区二区三区 | 国产伦精品一区三区视频| 亚洲国产高清在线精品一区| 四虎成人精品一区二区免费网站| 国产午夜毛片一区二区三区 | 天堂一区二区三区在线观看| 国精产品一区一区三区免费视频 | 亚洲色偷偷偷网站色偷一区| 一区 二区 三区 中文字幕| 中文字幕日韩一区| 无码精品视频一区二区三区| 好吊视频一区二区三区| 欧洲亚洲综合一区二区三区| 精品一区高潮喷吹在线播放| 久久精品一区二区| 日韩制服国产精品一区| 一区二区三区四区视频在线| 国产精品亚洲一区二区无码| 亚洲AV无码一区二区三区网址| 亚洲A∨无码一区二区三区| 99精品国产一区二区三区| 亚洲AV无码一区二区三区在线观看| 四虎在线观看一区二区 | 日本精品一区二区久久久| 色噜噜狠狠一区二区三区| 在线观看亚洲一区二区| 91久久精品无码一区二区毛片| 无码精品黑人一区二区三区| 久久精品一区二区三区资源网 | 69久久精品无码一区二区| 日韩一区二区在线观看视频| 亚洲AV成人一区二区三区AV| 亚洲av无码一区二区三区网站| 国产一区二区精品| 无码人妻品一区二区三区精99| 日韩免费视频一区二区| 亚洲一区二区三区四区在线观看| 高清一区二区三区免费视频| 日韩精品一区二区三区色欲AV | 国产亚洲一区二区三区在线不卡 | 亚洲欧美国产国产综合一区|