3個很棒的小眾JavaScript庫,你值得擁有
JavaScript有很多庫,每個人都已經對最重要和最受歡迎的庫做過總結,但很快再次迷失。
在本文中,小芯將分享3個鮮為人知但非常強大,且很小的JavaScript庫,這些庫將使你的生活變得簡單,也不會給你的web應用程序增加不必要的負擔。
1. JS-cookie
OfficialGitHub
在瀏覽器中使用cookies可能會非常費力。JS cookies讓這件事變得簡單多了,現在我們將學習基本知識。
通過CDN實施:
- <script src="https://cdn.jsdelivr.net/npm/js-cookie@beta/dist/js.cookie.min.js"></script>
設置一個名為“name”的cookie鍵,其值為“Max”
- Cookies.set(‘name’, ‘Max’)
獲取密鑰為“name”的cookie值
- Cookies.get(‘name’) // 'Max'
創建cookie,讓它在7天后過期
- Cookies.set('name', 'Max', { expires:7 })
刪除cookie
- Cookies.remove(‘name’)
得出所有cookie
- Cookies.get() // { name: 'Max' }
來源:Pexels
2. Basket.js
OfficialDocumentation
Basket.js是一個極簡的腳本加載程序庫,壓縮后只有0.7kB。
(它使用的另一個庫壓縮后大約為5kB,如https://github.com/addyosmani/basket.js/issues/61中所述,但仍然很小)
但是basket.js不僅可以加載外部JavaScript,還可以將其緩存在瀏覽器的本地存儲中,這樣在下一頁請求時,就不必再次通過網絡請求外部JavaScript,而只需從本地存儲中加載即可。
但為什么是本地存儲而不是瀏覽器緩存呢?
首先,我個人認為通過JS庫在web頁面代碼中緩存JavaScript文件要容易得多,通常是從服務器端緩存的。使用Basket.js,很容易在代碼中使用JavaScript動態控制腳本緩存。
我們試試看:
實際的API并沒有那么復雜。我認為你可以自己探索一下文檔,在下面的簡單示例中,我們只使用basket.require,因為它是整個庫的核心。
- basket.require()
- basket.get()
- basket.remove()
- basket.clear()
使用basket.require,我們可以通過basket加載JS文件。然后這個文件被緩存在本地存儲中,正如前文所述,下一次basket.require請求這個文件,例如,當重新加載頁面時,basket將首先在緩存中查找。或者如果文件已經緩存在那里,它將通過本地存儲加載文件,而不是通過網絡再次發出請求。
index.html:
在這里你可以找到庫:
- https://addyosmani.com/basket.js/dist/basket.min.js
- https://cdn.jsdelivr.net/npm/rsvp@4/dist/rsvp.min.js
- https://cdnjs.cloudflare.com/ajax/libs/jquery/3.4.1/jquery.min.js
- <!DOCTYPE html>
- <html lang=”en”>
- <head>
- <meta charset=”UTF-8" />
- <scriptsrcscriptsrc=”rsvp.min.js”></script>
- <scriptsrcscriptsrc=”basket.min.js”></script>
- <title>Document</title>
- </head>
- <body>
- <script>
- basket.require({ url:'/scripts/jquery.js' })
- </script>
- </body>
- </html>
如你所見,首先導入Basket.js需要的RSVP庫。然后回到Basket本身,在body中可以執行require函數,從某個地方加載jQuery。
第一次打開頁面時,應該看到:
jQuery是通過網絡正常請求的。
但隨著頁面的重新加載:
jQuery不再列在Network選項卡中,它是從本地存儲加載。
以上就是整個“魔法”過程。
3. Pill
Official Github
“Pill將動態內容加載添加到靜態站點,并使內容加載更為順暢。”壓縮后大約為1KB。
Pill的開發始于這篇推文:https://twitter.com/sitnikcode/status/1109626507331338240
精髓:大多數人使用單頁應用程序來運行web應用程序,點擊時,不會加載整個新頁面。在大多數SPA框架中,這是因為所有內容都基于一個index.html。
但如果有多個靜態頁面呢?Pill能夠幫你解決。
根據需要,它將獲取服務器上其他HTML文件的內容,并將當前內容替換為新的已獲取內容。
這是巨大的性能改進,因為我們的應用程序不再要求一個完整的新頁面。
重要的內容剛剛被替換。
使用Pill,能攔截導航嘗試,自動完成上述步驟。
Pill最好的一點是,它會通過一個個示例來記載,確保檢查所有的東西:你可以在GitHub上找到代碼
(https://GitHub.com/rumkin/pill/tree/master/example)
祝你和Pill合作愉快!