2014-07-24 59 views
0

我們有一個在noConflict模式下使用jQuery的項目。本產品的用戶使用他們自己的jQuery版本。結果是頁面上有兩個版本的jQuery(一個是noConflict(true)模式,另一個是正常/全局模式)。是否有任何已知的問題在一個頁面上使用兩個jQuery?

此方法是否存在任何已知問題?官方文件說

如果由於某些原因的jQuery的兩個版本,裝載(不推薦)...

,但它沒有說的原因。

回答

1

兩個或更多版本,可向工作,但只有當它是正確的和非常做小心。一般情況下,應儘量避免,如果在所有可能的原因如下:

  1. 加載的jQuery的需要更長的時間來下載多個版本,並消耗更多的內存,而頁是有效的。 jQuery的設計人員很努力地獲得這麼多功能,他們可能會因爲看到包括jQuery的多個版本以及消耗內存/下載量的兩倍或三倍的人而感到畏懼。
  2. 對於任何給定的代碼片段,您都必須非常小心且一致地訪問正確版本的jQuery。在同一部分代碼中混用版本可能會導致意外問題。
  3. 您不能在不同版本之間共享某些類型的數據。例如,如果您在某個版本的jQuery中設置了$(elem).data("key", info)的某些信息,則該數據在其他版本的jQuery中將不可用,因爲它們各自都有自己的.data()存儲庫。
  4. 您不能在不同版本之間共享事件處理程序。例如,如果您使用一個版本執行.on(),並且您嘗試使用另一個版本執行.off()以清除給定對象上的所有jQuery事件處理程序,則只會刪除當前版本的jQuery中安裝的事件處理程序(同樣是因爲每個版本的jQuery有自己的事件處理程序存儲),而不是與其他安裝的。
0

沒有問題,由於jQuery的noconflict模式,您可以有兩個或多個jQuery版本的程序。

順便說jQuery的文件說:

「[..](不推薦)[..]」

這一點,在我的opionion,因爲引進新的問題,你要記得要經常使用特定的jQuery函數指定版本:jQuery的的

jQuery_1_x_y('#el').function(); 
jQuery_1_k_z('#el').function(); 
相關問題