為了獲得最佳的網絡性能,為CSS,JavaScript,Image和Fonts等資產實施強大的緩存策略至關重要。這使瀏覽器可以保留這些文件,從而在網站內重新訪問或導航時大大加速頁面加載時間。但是,更新這些資產需要一種迫使瀏覽器下載新版本的方法。儘管存在幾種技術,但本文詳細介紹了一種使用Gulp的最新方法。
利用查詢字符串修改緩存破壞
與較早的信念相反,修改查詢字符串仍然是緩存破壞的有效方法,尤其是在諸如CloudFlare減輕潛在邊緣案例之類的服務中。
最初,您的HTML可能包括這樣的資產鏈接:
<link href="style.css?v=1" rel="stylesheet">
隨後,要強制緩存刷新,只需更改查詢字符串值:
<link href="style.css?v=2" rel="stylesheet">
HTML本身通常具有較短的緩存持續時間或沒有緩存,從而確保了HTML更改的立即可見性。
手動與自動緩存破壞
以前,手動緩存破壞涉及直接修改PHP變量:
<link href="style.css?v=<?php%20echo%20%24ver;%20?>" rel="stylesheet"><link href="some-other-asset.css?v=<?php%20echo%20%24ver;%20?>" rel="stylesheet">
這種方法雖然功能性,但很容易受到監督,而且通常很麻煩。
與灣和毛replapply自動化
採用基於毛的構建過程,該過程處理諸如SASS彙編,Babel Transpilation和File Concatenation之類的任務允許自動加速拆卸。 gulp-replace
插件簡化了此過程。
可以創建一個Gulp任務,以搜索標頭文件中的特定字符串(例如, cache_bust=
),並用動態生成的基於時間戳的字符串替換它:
gulp.task(“ CACH-BUST-CSS”,function(){ var cbString = new Date()。 getTime(); 返回Gulp .src([“ header.php”]) 。管道( 替換( /cache_bust = \ d /g,function(){ 返回“ cache_bust =” cbString; })) ) .pipe(gulp.dest(“。”)); });
可以針對JavaScript文件實現類似的任務。
優化效率
當前的實現每當任何資產更改時,都會更新所有CSS資產的查詢字符串。一種更有效的方法將僅針對修改的文件。該優化計劃用於將來實施。
這種基於毛的策略只是一種方法。其他Gulp插件和構建系統提供替代方法。該解決方案有效地解決了該項目的特定需求。隨時分享您喜歡的緩存技術!
以上是快速吞噬緩存破壞的詳細內容。更多資訊請關注PHP中文網其他相關文章!

@keyframesandCSSTransitionsdifferincomplexity:@keyframesallowsfordetailedanimationsequences,whileCSSTransitionshandlesimplestatechanges.UseCSSTransitionsforhovereffectslikebuttoncolorchanges,and@keyframesforintricateanimationslikerotatingspinners.

我知道,我知道:有大量的內容管理系統選項可用,而我進行了幾個測試,但實際上沒有一個是一個,y&#039;知道嗎?怪異的定價模型,艱難的自定義,有些甚至最終成為整個&

鏈接CSS文件到HTML可以通過在HTML的部分使用元素實現。 1)使用標籤鏈接本地CSS文件。 2)多個CSS文件可通過添加多個標籤實現。 3)外部CSS文件使用絕對URL鏈接,如。 4)確保正確使用文件路徑和CSS文件加載順序,優化性能可使用CSS預處理器合併文件。

選擇Flexbox還是Grid取決於佈局需求:1)Flexbox適用於一維佈局,如導航欄;2)Grid適合二維佈局,如雜誌式佈局。兩者在項目中可結合使用,提升佈局效果。

包含CSS文件的最佳方法是使用標籤在HTML的部分引入外部CSS文件。 1.使用標籤引入外部CSS文件,如。 2.對於小型調整,可以使用內聯CSS,但應謹慎使用。 3.大型項目可使用CSS預處理器如Sass或Less,通過@import導入其他CSS文件。 4.為了性能,應合併CSS文件並使用CDN,同時使用工具如CSSNano進行壓縮。

是的,youshouldlearnbothflexboxandgrid.1)flexboxisidealforone-demensional,flexiblelayoutslikenavigationmenus.2)gridexcelstcelsintwo-dimensional,confffferDesignssignssuchasmagagazineLayouts.3)blosebothenHancesSunHanceSlineHancesLayOutflexibilitibilitibilitibilitibilityAnderibilitibilityAndresponScormentilial anderingStruction

重構自己的代碼看起來是什麼樣的?約翰·瑞亞(John Rhea)挑選了他寫的一個舊的CSS動畫,並介紹了優化它的思維過程。

CSSanimationsarenotinherentlyhardbutrequirepracticeandunderstandingofCSSpropertiesandtimingfunctions.1)Startwithsimpleanimationslikescalingabuttononhoverusingkeyframes.2)Useeasingfunctionslikecubic-bezierfornaturaleffects,suchasabounceanimation.3)For


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SecLists
SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。

MantisBT
Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

ZendStudio 13.5.1 Mac
強大的PHP整合開發環境

SublimeText3漢化版
中文版,非常好用