我正在致力於一個網站全球化項目,該項目涉及(我們的供應商)要求我們的客戶在其家庭/原始網站上插入腳本標籤。腳本標記是幫助我們的客戶走向全球所必需的,部分解決方案體現了基於特定最終用戶標準觸發的用戶界面。管理綁定jQuery的第三方JavaScript庫
UI是通過jQuery的幫助構建的,我們真的不能指望我們的客戶在他們的頁面上插入,更不用說版本不匹配將很難解決。因此,我們的第三方庫下載它自己的jQuery版本,儘管命名空間不同以避免任何衝突。然而,這種機制要求我們重新命名所有jQuery實例,以幫助我們避免與另一個jQuery實例(如果存在)發生名稱衝突,並使得我們的jQuery(下面示例中的MY_Query)變得非常困難管理,更不用說升級了。
例如
jQuery = window.jQuery = window.$ = function(selector, context) {
// The jQuery object is actually just the init constructor 'enhanced'
return new jQuery.fn.init(selector, context);
},
.
.
.
jQuery.fn = jQuery.prototype = ...
成爲
MY_JQuery = window.MY_JQuery = window.MY_Q = function(selector, context) {
// The MY_JQuery object is actually just the init constructor 'enhanced'
return new MY_JQuery.fn.init(selector, context);
},
.
.
.
MP_JQuery.fn = MP_JQuery.prototype = ...
在一個理想的世界裏,我們和客戶端將有jQuery的單一版本的網站上,我們都將用它來我們的優點。但是,這意味着jQuery的升級需要雙方進行大量測試(而包含嚴重的jQuery版本),並且任何插件都需要客戶端向其站點添加適當的腳本標籤,這引發了雙方之間的政治爭論在什麼版本贏。
那麼,我可以在客戶端網站上管理我們的jQuery版本(帶插件),而不必用上面提到的約束來重新命名像MY_Query之類的所有jQuery實例?
爲什麼不鏈接到谷歌代碼的jQuery庫,你都將具有相同的版本,永不需要對它們進行升級,只是一個想法。 – brett 2010-12-14 15:11:14
很難說服客戶這麼做。另外,客戶端可能有合法的理由拒絕這個提議 – 2010-12-14 16:52:02