大家好!在這篇文章中我想告訴你如何透過 hmpl 這樣的模板語言來多次減少 javascript 檔案的大小。
文章中出現的技術方法並不新鮮,但今天仍然足夠流行,值得討論。
減小 javascript 檔案的大小將使頁面在客戶端上載入得更快。如果我們採用現代 SPA,即使考慮到所有的縮小,檔案大小仍然很大。當然,一旦加載頁面一次,導航就會更容易,但第一次加載時間本身可能會從一秒到幾分鐘,如果互聯網連接不好的話。很少顧客願意等那麼久。
使用大多數框架和函式庫來建立 UI 時,您必須編寫大量樣板程式碼。每個符號都佔用記憶體空間。讓我們來看一個 Vue.js 點擊器:
createApp({ setup() { const count = ref(0); return { count, }; }, template: `<div> <button>Click!</button> <div>Clicks: {{ count }}</div> </div>`, }).mount("#app");
一個超級簡單的點擊器,但即使它也需要相當多的js程式碼行,更不用說那些應用程式或多或少的情況了。
即使沒有兩個逗號,也可能會少幾個位元組
這不僅是 Vue 的問題,也是以類似方式運作的其他框架和函式庫的問題。但是,這不是唯一的一點。有大量的附加模組進入它們,並且同樣數量的附加模組進入它們,依此類推,直至“無窮大”。
事實上,這個問題的解決方案之一很早之前就被提出了,而且非常簡單——就是在伺服器上準備好 UI,然後簡單地將其加載到客戶端上。因此,應用程式檔案的大小可以顯著減小。這正是 HMPL 中所使用的想法。
在範例中,我也會嘗試製作一個答題器,但使用 hmpl.js。
document.querySelector("#app").appendChild( hmpl.compile( `<div> <button>Click!</button> <div>Clicks: {{ src: "/api/clicks", after: "click:button" }}</div> </div>` )().response );
如您所見,使用者介面將相同,但檔案大小會小一些。
即使您縮小檔案並從範本中刪除所有不必要的空格,也許檔案會達到同等水平或更大,但這只是對小範例的假設。如果我們採用大型應用程序,那麼很明顯,採用這種方法,js 會少得多。
從範例中可以看出,如果需要,可以將計算和儲存應用程式狀態的功能移至伺服器。
從範例中可以看出,如果需要,可以將計算和儲存應用程式狀態的功能移至伺服器。很明顯,如果用戶數量龐大,這只會導致伺服器癱瘓,但用戶介面相同這一事實很重要。
是的,當然,這種方法不僅有這樣的缺點,還有UI的可重用性,如何緩存UI以免加載所有內容一百次等等。替代方案很重要,如果配置正確,它可以與大多數現代解決方案競爭。
非常感謝大家閱讀這篇文章!
材料清單:
https://hmpl-lang.github.io/#/docs
https://vuejs.org/guide/quick-start.html
以上是如何減少客戶端的 javascript 檔案大小?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

JavaScript的最新趨勢包括TypeScript的崛起、現代框架和庫的流行以及WebAssembly的應用。未來前景涵蓋更強大的類型系統、服務器端JavaScript的發展、人工智能和機器學習的擴展以及物聯網和邊緣計算的潛力。

JavaScript是現代Web開發的基石,它的主要功能包括事件驅動編程、動態內容生成和異步編程。 1)事件驅動編程允許網頁根據用戶操作動態變化。 2)動態內容生成使得頁面內容可以根據條件調整。 3)異步編程確保用戶界面不被阻塞。 JavaScript廣泛應用於網頁交互、單頁面應用和服務器端開發,極大地提升了用戶體驗和跨平台開發的靈活性。

Python更适合数据科学和机器学习,JavaScript更适合前端和全栈开发。1.Python以简洁语法和丰富库生态著称,适用于数据分析和Web开发。2.JavaScript是前端开发核心,Node.js支持服务器端编程,适用于全栈开发。

JavaScript不需要安裝,因為它已內置於現代瀏覽器中。你只需文本編輯器和瀏覽器即可開始使用。 1)在瀏覽器環境中,通過標籤嵌入HTML文件中運行。 2)在Node.js環境中,下載並安裝Node.js後,通過命令行運行JavaScript文件。

如何在Quartz中提前發送任務通知在使用Quartz定時器進行任務調度時,任務的執行時間是由cron表達式設定的。現�...

在JavaScript中如何獲取原型鏈上函數的參數在JavaScript編程中,理解和操作原型鏈上的函數參數是常見且重要的任�...

在微信小程序web-view中使用Vue.js動態style位移失效的原因分析在使用Vue.js...

在Tampermonkey中如何對多個鏈接進行並發GET請求並依次判斷返回結果?在Tampermonkey腳本中,我們經常需要對多個鏈...


熱AI工具

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

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

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

PhpStorm Mac 版本
最新(2018.2.1 )專業的PHP整合開發工具

Dreamweaver Mac版
視覺化網頁開發工具

禪工作室 13.0.1
強大的PHP整合開發環境

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

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