2013-03-14 65 views
0

我可能在這裏問一個真正的愚蠢問題,但無法找到任何好的閱讀材料來讓我放心。單個頁面上的多個jquery文件

我接管了一個使用幾個不同的jquery文件的項目。目前他的標題看起來像:

<head> 
    <title> 
    Capture New Order 
    </title> 
    <meta name="viewport" content="width=device-width, initial-scale=1"> 
    <link rel="stylesheet" href="/application/assets/CSS_JS/jquery.mobile-1.1.1.min.css" /> 
    <link rel="stylesheet" href="/application/assets/CSS_JS/green.min.css" /> 
    <script src="/application/assets/CSS_JS/jquery-1.7.2.min.js"></script> 
    <script src="/application/assets/CSS_JS/jquery.mobile-1.1.1.min.js"></script> 
    <link rel="stylesheet" href="/application/assets/CSS_JS/elf.css" media="screen"> 

    <link href="<?php echo base_url() ?>application/css/ui-lightness/jquery-ui-1.8.custom.css" media="screen" type="text/stylesheet" rel="stylesheet"> 
    <script src="<?php echo base_url() ?>application/scripts/jquery-1.9.1.min.js" type="text/javascript"></script> 
    <script src="<?php echo base_url() ?>application/scripts/jquery-ui-1.10.1.custom.min.js" type="text/javascript"></script> 

    <link rel="stylesheet" href="<?php echo base_url() ?>application/css/sales.css" /> 

    <script type="text/javascript"> 
     $(function(){ 
      $("#customer").autocomplete({ 
      source: "get_customers" 
      }); 
     }); 
    </script> 
</head> 

在這個例子中,我調用各種jquery文件4次。但是,如果我刪除這些jquery文件中的任何一個,就會破壞網站的功能。

是否沒有一個具有所有可用功能的「主」jquery文件?

當然,這會比有幾個不同的jQuery文件更有意義嗎?

道歉,如果這是一個'簡單'的問題,但只是想澄清一些。

感謝, 瑞恩你加載主文件的jQuery兩次

+0

這裏有什麼問題?很難更新文件?試圖減少http請求的數量?要麼? – kyooriouskoala 2013-03-14 08:22:53

+0

感謝您的時間,沒有真正的關注,只是在上傳幾個不同的文件時會浪費時間呢?另外,如果您更改文件的順序,它們會互相覆蓋,因此當您需要新版本的Jquery時,需要一些操作才能使功能正常工作。 – JustStarting 2013-03-14 08:27:11

回答

1

第一:jQuery的1.7.2.min.js和jQuery的1.9.1.min.js你只需要其中的一個。該文件負責主要功能。 jquery-ui文件是用於UI-Elements的。而jquery-mobile則用於移動功能和UI。因此,如果您刪除其中一個文件,則此文件的功能將消失。但一切都在jQuery主文件中繼續。

加載文件的順序並不重要,只需首先加載jqeuery.min.js即可。

我希望有幫助。

+0

只要加入Daniel的答案,通常我們會說當你在不使用它們的頁面上加載腳本時,它是浪費的。如果所有的頁面都需要加載所有這些文件,那麼這根本就不是浪費。 – kyooriouskoala 2013-03-14 08:40:11

+0

感謝男性,幫助緩解頭腦。讚賞。 – JustStarting 2013-03-14 09:26:41

0

你需要重新排列標籤的順序,甚至刪除舊版本的jQuery和用戶界面的

/* collect and keeping css links first*/ 
<link rel="stylesheet" href="/application/assets/CSS_JS/jquery.mobile-1.1.1.min.css" /> 
<link href="<?php echo base_url() ?>application/css/ui-lightness/jquery-ui-1.8.custom.css" media="screen" type="text/stylesheet" rel="stylesheet"> 
<link rel="stylesheet" href="/application/assets/CSS_JS/green.min.css" /> 
<link rel="stylesheet" href="/application/assets/CSS_JS/elf.css" media="screen"> 
<link rel="stylesheet" href="<?php echo base_url() ?>application/css/sales.css" /> 
/* Moving the jQuery Mobile down below the jQuery core link 
    and only load jQuery core + jQuery UI once 
*/ 
<script src="<?php echo base_url() ?>application/scripts/jquery-1.9.1.min.js" type="text/javascript"></script> 
<script src="<?php echo base_url() ?>application/scripts/jquery-ui-1.10.1.custom.min.js" type="text/javascript"></script> 
<script src="/application/assets/CSS_JS/jquery.mobile-1.1.1.min.js"></script> 
0

你不能把所有的文件一起,因爲任何圖書館的更新它的更好替換一個單獨的文件,而不是搜索代碼來替換一個單一的組合文件:)。

但是你的方法很好,因爲當你減少HTTP請求的數量時,你可以加快你的應用程序的速度,因爲每個文件(JavaScript,CSS,...)都需要一個HTTP請求。您可以在Yahoo!的Rules of High Performance Web Sites中閱讀。在那裏有許多minify-&組合庫。例如,您可以使用CSS-JS-Booster,這可以減少JavaScript和CSS的HTTP請求數量。但是,如果你谷歌,你可以找到更多這樣的圖書館,這可能更適合你的需求。

還建議將JavaScript放在HTML文件的底部(以及頂部的CSS)。如果你閱讀上面的規則,你會發現更多這樣的網站「助推器」。