2015-06-29 34 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