2015-06-29 87 views
0

我是JS和編程的新手,希望有人能幫助我。HTML/jQuery:如何正確包含外部jQuery文件

我目前正在建設一個網站,每個頁面都有其單獨的HTML/PHP文件。 jQuery和我的全局/常規JS函數通過一個單獨的包含文件「footer.php」包含在所有這些頁面的頁腳中。

到目前爲止,一切都按預期工作。

現在我有一些頁面將使用特定的jQuery函數,所以我只想加載相應的JS,如果這樣的頁面加載。

要做到這一點,我保存在單獨的JS文件對應的代碼(例如nameOfExternalJsFile.js)和一切都包裹在裏面在以下幾點:

$(document).ready(function(){ 
    // ... 
}); 

我那麼做了如下更新相應的PHP頁面(例如):

<head> 
    <?php 
     require_once("includes/header.php"); 
    ?> 

    <!-- here I want to include the specific jQuery functions --> 
    <script src="includes/js/nameOfExternalJsFile.js"></script> 
</head> 
<!-- ... --> 
<!-- here I include the main JS functions --> 
<?php require_once("includes/footer.php"); ?> 

我有兩個問題與此:

  1. 我不確定這是否包含這些文件的正確方法,因爲 我需要在準備好文檔時提供這些文件。
  2. 我在頁腳中包含了我的主JS,因爲我被告知這可以提高 的性能,但是我可以在頭中包含jQuery函數嗎?

有人可以告訴我,如果這是正確的,或者我應該改變什麼嗎?

非常感謝任何幫助。

回答

3
  1. 結束語在$(document).ready功能自動進行這種擔憂的照顧。從JQuery documentation on document.ready

在文檔「準備就緒」之前,不能安全地操作頁面。 jQuery爲你檢測到這種狀態。包含在 $(document).ready()中的代碼只會在頁面Document Object 模型(DOM)準備好執行JavaScript代碼時運行。

  • 技術上講,它不會不管你是否包含在頁眉或頁腳的腳本,只要你第一次加載jQuery和腳本第二。

    也就是說,通常建議兩個腳本都放在關閉body標籤之前,以提高性能。有一些文章討論這個問題,如性能專家Steve Souders的this post和來自Yahoo!的this guide。卓越的表演團隊。

  • +0

    非常感謝! PHP頁腳包含是關閉body標籤之前的最後一行,所以這應該沒問題吧?關於文件準備線,只要我先包含jQuery然後是這個外部文件,我可以保留這個外部文件,對嗎? – TaneMahuta

    +1

    兩種都可以:-) – Equalsk

    +0

    真棒 - 非常感謝!我知道這是一個簡單的問題,但你真的幫助我,並且這些鏈接非常有用! – TaneMahuta

    1

    您應該加載已加載的jQuery之後才$(document).ready(...)的東西,那就是,在頁腳文件,jQuery的<script>標籤後,就像這樣:

    <script src="includes/js/jQuery.min.js"></script> 
    <script src="includes/js/nameOfExternalJsFile.js"></script> 
    
    +0

    非常感謝!我接受了Equalsk的回答,因爲這對我所需要的更完整,但是投了這個。再次感謝 ! – TaneMahuta

    0

    您可以更改footer.php的內容在頁面底部手動添加/nameOfExternalJsFile.js。這是最安全的方式,因爲您可能在加載其他腳本之前加載jquery。

    1

    它了很好的做法來定位體內的結束所有的JS文件

    <html> 
    <head></head> 
    <body> 
    ... Some HTML 
    <script>SomeScripts</script> 
    </body> 
    </html> 
    
    </pre> 
    

    如果你想確保你的外部腳本頁面加載使用後裝: $(function(){ /*您的代碼來自腳本*/ });

    +0

    感謝您的支持! – TaneMahuta