簡體   English   中英

如何在大型Web項目中將Javascript庫更新為最新版本?

[英]How do you keep your Javascript libraries updated to the latest versions in a large web project?

在處理更大的Web項目(比如說20多頁)時,如何將Javascript庫更新到最新版本? 我特意使用jQquery很多。 好像每次我看,都有一個新版本。 我在所有頁面上都包含了jQuery庫,每個頁面都需要更新它。 其他人做什么? 我確信一個很好的答案是使用一個帶有單個前端控制器的框架。 我已經考慮過了,但我還沒有准備好去那條路。

我們沒有。

當更新不向后兼容時,它可能會自動中斷。 我們會定期檢查郵件列表和論壇,檢查新版本是否已經發布,閱讀更新日志和/或encodeiff,並檢查我們的插件是否兼容。 我們通常將服務器克隆為金色外套,在那里測試新版本並查看是否有任何中斷。

如果優勢超過更新所需的工作量 ,我們會這樣做,但只有在經過足夠的時間后,社區才能找到並解決版本的初始錯誤。

這是一個不涉及框架或服務器端包含的選項

所有頁面都加載您自己的引導加載程序庫。

所以我們假設你有一個boorloader.js文件,所有的html文件都包含它。 在該文件中,您可以在頂部插入以下代碼。

var jq = document.createElement('script');
jq.src = "https://ajax.googleapis.com/ajax/libs/jquery/1.6.0/jquery.min.js";
var head = document.getElementsByTagName('head');
head[0].appendChild(jq);

您可以抽象大部分內容來支持許多不同的數據點,但最終結果是您從一個文件異步注入jQuery庫。 更新一次,您的所有HTML也會更新。

你可以隨時使用這個url的最新jQuery:

http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js

當然,你必須要小心,因為它可能會破壞事物(特別是如果有重大的版本更改)。

某種形式的模板包含系統,其中有很多。

的框架往往配有模板系統,但你沒有使用一個。 如果進行預處理,甚至不需要服務器端編程。

我通常只對我控制的資源使用“不透明”目標 - 例如“jquery.js”。 然而,這有幾個缺點:

  1. 不能依賴CDN的確切版本(必須是受控資源)。 對於本地Javascript資源,這不是問題,但它確實會影響具有眾所周知的CDN URL的庫。
  2. 所有文件必須始終使用相同的版本。 (例如“jquery.js”是“jquery-1.4.1.js”)。 這對我工作的項目來說不是問題,但對於大型項目來說可能是一個問題。
  3. 刪除版本號的一些自我文檔。

使用半透明資源(例如“jquery-1.4.js”)可以減輕但不能消除所提到的問題(注意缺少修訂版/錯誤修復版;可以參考1.4.0或1.4.1,但是不是1.5.x)。

快樂的編碼。

  • 使用將指向所需版本的公共服務器端包含

要么

  • 指向一個本地URL,然后您可以將其解析為所需的版本

一般來說,沒有理由更新庫是不好的,因為舊版本可以滿足您的需求。 但一般來說,將外部系統的交互包裝起來以便集中控制它們是很好的。

通常認為自動更新框架或使用前端加載器是個壞主意。 基本上,這意味着第三方可以對您的網站進行一定程度的控制。 如果他們在圖書館中進行了大量重大更改,他們將自動發布到您的網站,現在您努力工作的網站已被破壞。

如果我在.NET中工作,我更喜歡將JS和CSS之類的東西放在include或MasterPage中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM