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
ostcss越來越重要了,經常可以看到它的身影,比如面試,論壇。本篇文章是小編參考多方資料以及官網總結出來的,不喜勿噴,喜歡多多支持,謝謝!
另外 React Redux ES6 Webpack...... 更多干貨在個人主頁中查看
postcss 一種對css編譯的工具,類似babel對js的處理,常見的功能如:
1 . 使用下一代css語法
2 . 自動補全瀏覽器前綴
3 . 自動把px代為轉換成rem(rem不熟悉的,點這)
4 . css 代碼壓縮等等
postcss 只是一個工具,本身不會對css一頓操作,它通過插件實現功能,autoprefixer 就是其一。
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中配置
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可能是開發者們最熟悉的了
為了優化首屏渲染時間這個指標,減少白屏時間,前端仔們想了很多辦法:
這里要介紹的就是優化用戶等待體驗的骨架屏,它可以被視為是原來加載菊花圖的一種升級版,結合傳統的首屏優化方法對應用進行優化可以達到不錯的效果。
2. 骨架屏
骨架屏可以理解為是當數據還未加載進來前,頁面的一個空白版本,一個簡單的關鍵渲染路徑。可以看一下下面Facebook的骨架屏實現,可以看到在頁面完全渲染完成之前,用戶會看到一個樣式簡單,描繪了當前頁面的大致框架的骨架屏頁面,然后骨架屏中各個占位部分被實際資源完全替換,這個過程中用戶會覺得內容正在逐漸加載即將呈現,降低了用戶的焦躁情緒,使得加載過程主觀上變得流暢。
可以看一下下面的示例圖,第一個為骨架屏,第二個為菊花圖,第三個為無優化,可以看到相比于傳統的菊花圖會在感官上覺得內容出現的流暢而不突兀,體驗更加優良。
如今這項技術已經在Facebook、Google、支付寶、餓了么、簡書、新浪微博、知乎、美團、領英等公司的產品中被廣泛的使用。在論壇和社區也都有不少文章討論骨架屏的實現和使用場景等。
3. 生成骨架屏的方法
生成骨架屏的方式主要有:
另外還有個插件 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前端優化的一項關鍵技術,巧妙運用可以顯著提升用戶體驗,降低用戶流失率。在實踐中,我們要根據具體項目需求和用戶場景,靈活選擇合適的預加載策略,做到既能加速頁面渲染,又能兼顧性能與資源優化,達到提升網站整體表現的終極目標。而不斷精進和深化前端優化技術,正是每一位前端開發者追求卓越的必由之路。
*請認真填寫需求信息,我們會在24小時內與您取得聯系。