HTML如何分模塊設計並include?

比如導航條、頁腳等,一動就要全部頁面都動的東西,如何用類似php include的方法,把它包含進來,以達到每次改動只要改一次就好?

(不使用iframe)


你可以試試 jade


謝邀 如果用gulp 可以搜索相關模塊 npm 里有很多 gulp include

如果自己做也很簡單 拿fs模塊 讀本地文件再逐行匹配include標記 再查找依賴 替換字元就行了。

最後和你項目中其他gulp task一起跑 或者開watch實時開發也行。

webpack也有相關功能 grunt也是。

以上是純前端部分的常見解決方案 也不需要php什麼的。。


我們前端寫demo的時候,開始都用jade,然後有一個環境可以自動編譯jade,jade的好處是可以在html里耦合進邏輯,然後也可以include,bulabula。

後來用了gulp管理項目之後,選擇就更多了,甚至你自己實現個插件,用特殊標籤實現include的功能也都很簡單。

後來用了react,vue什麼的,你就發現,都木有頁面的概念了。。。


gulp 這種 replace 腳本蠻多的。

嘗鮮的話可以用 HTML Import,作為 Web Component 的一部分,其使命就是 web 的 include。兼容性的話 polyfill 也還夠用。

多個鏈接產生的性能問題正好提供了個機會試試 http2 嘛…


使用gulp的gulp-file-include可以實現這個功能,還可以實現傳參的功能

具體文章:GitHub - mqyqingfeng/introduction-for-lnv-mobile-base: 教程

參考文件配置:

lnv-mobile-base/gulpfile.js at master · mqyqingfeng/lnv-mobile-base · GitHub


這個一般是後台處理的多,比如php include,好處是只用一次請求,稍微節約一些,而且對搜索引擎友好,開發上是通用模式,利於團隊協作。

一定要前端處理,簡單的就是將html封成js的字元串,然後引用這個js再document.write到合適的位置。html到js字元串要另外找工具手動處理或自己寫一個自動處理的角本。這初次訪問會多一次http連接請求,以後的頁面瀏覽器緩存應當會生效,比後台合併的節約流量,可能會對搜索引擎有點困擾,當然現在的搜索引擎很先進,可以模擬執行js的。個人開發問題不明顯,團隊協作的話,因為js封裝的html閱讀有點困難,所以最好是html文件獨立,由程序自動進行轉換。

複雜點的可以使用ajax二次載入。好處是不用處理html到js字元串的轉換,缺點是多次請求而且對搜索引擎友好稍差。


前端構建,至於模板用哪一種,隨便,但實名反對jade,感覺jade就是後端思路解決前端問題不接地氣的典型代表


如果是 C# 的話,可以試試 前後端一體 WEB 視圖框架 - C# 高性能自動化服務端框架 - 凹凸架構(同時支持字元串傳參)


如果是用apache,可以讓apache支持include功能,到時html裡面直接include另一個html就好


可使用ssi開發環境中可以結合使用的構建工具使用相應的插件

生產上,利用ngnix幫你在服務端動態添加公用模塊


推薦閱讀:

還要多少年, 前端開發才能像客戶端開發那樣輕鬆?
如何理解扎克伯格说「Facebook 最大错误是在 HTML5 上押注过大,在移动平台上浪费两年时间」?
想在豬八戒接做網頁,要怎樣系統的學習 ?
Cordova 如何實現所有的h5html 來自於遠程伺服器呢?
像這種網站效果,整屏整屏換有沒有什麼名字?

TAG:前端開發 | HTML | HTML5 | 前端架構 |