Javascript Jquery和Bootstrap应该放在HTML文件的什么位置?

Javascript Jquery和Bootstrap应该放在HTML文件的什么位置?,javascript,jquery,css,twitter-bootstrap,Javascript,Jquery,Css,Twitter Bootstrap,对我放置Jquery和引导文件的位置感到好奇。他们建议您始终将其放在底部以提高性能,但当我检查使用Jquery/Bootstrap的站点时,大多数用户总是将其放在顶部。我应该在bootstrap/Jquery文件之前还是之后加载自己的JavaScript文件 如果我想覆盖它们的一些样式,我认为我首先在引导文件之前加载我自己的css文件,这是否正确,是否同样适用于javascript文件?通常在头中加载样式表,并在结束标记之前加载脚本: <html> <head>

对我放置Jquery和引导文件的位置感到好奇。他们建议您始终将其放在底部以提高性能,但当我检查使用Jquery/Bootstrap的站点时,大多数用户总是将其放在顶部。我应该在bootstrap/Jquery文件之前还是之后加载自己的JavaScript文件


如果我想覆盖它们的一些样式,我认为我首先在引导文件之前加载我自己的css文件,这是否正确,是否同样适用于javascript文件?

通常在头中加载样式表,并在结束
标记之前加载脚本:

<html>
  <head>
    <link rel="stylesheet" href="bootstrap.css">
    <link rel="stylesheet" href="your-other-styles.css">
  </head>
  <body>
    <!-- content -->
    <script src="jquery.js"></script>
    <script src="bootstrap.js"></script>
    <script src="your-other-scripts.js"></script>
  </body>
</html>

您将希望来自jQuery和Bootstrap等供应商的文件在您的文件之前被包含。这意味着:

  • CSS:您可以用自己的样式覆盖它们的样式*
  • 脚本:您可以访问添加到全局范围的任何对象,例如
    窗口
    (jQuery添加
    $
    , (例如)
但是,如果您需要在加载内容(如Modernizer)之前提供脚本,则将其放入
可确保它在加载任何内容之前准备就绪

在底部包含脚本可确保首先加载实际页面内容;当脚本最终下载时,内容(DOM)将准备好供脚本操作

*假设您的选择器特性至少与供应商CSS中的选择器特性相同


底部最好将所有脚本引用放在
之前的页面末尾。在正常页面中,它应该如下所示

<html>
 <head>
   <link href="path/to/file.css" rel="stylesheet" type="text/css">
 </head>
 <body>
   <script src="path/to/file.js" type="text/javascript"></script>
 </body>
</html>


当存在时,它指定脚本一可用就异步执行

若您需要在页面中访问脚本以供使用,那个么在使用它之前,脚本需要是可用的。尽管需要确保浏览器支持defer=“defer”。所有主要浏览器都支持异步

默认情况下,Javascript会阻止任何其他并行下载。因此,如果头部有许多标记,调用多个外部脚本将阻止加载HTML,从而以一个空白的白色屏幕欢迎用户,因为在java脚本文件完全加载之前,页面上不会加载其他内容。在底部加载脚本的另一个优点是,由外部脚本引起的任何错误都不会阻止页面加载到浏览器


样式css需要显示在顶部
才能在页面中访问。

这实际上取决于您想要实现什么,但通常JS放在底部,css放在头部。确保jquery库在引导的JS库之前加载,自定义css文件在引导的css之后加载,这样它就会覆盖。您可以从他们的CDN(或其他,例如cloudflare)加载Bootstrap的CSS

确保你缩小了所有这些&激活压缩,你不应该遇到任何性能问题


高级技术意味着在头部区域使用CSS的最重要部分,然后在底部区域发送CSS的其余部分。或者将整个静态内容(CSS+JS)托管在CDN上。

要覆盖引导样式,您应该将CSS放在引导之后。所以我不明白..不,你想在框架(jQuery/bootstrap)导入HHHHH之后加载自定义css和javascript,非常感谢。如果你回答这个问题:如果我想覆盖它们的一些样式,我认为我先加载我自己的css文件,然后再加载bootstrap文件,这是否正确,是否同样适用于javascript文件?那么这个答案将是完全正确的,但请解释为什么这是最佳实践。OP不仅询问如何做到最好,还询问为什么某个解决方案是首选方案。@connexo大多数框架(如jQM)都乐于放在HTML文档的开头。引导程序不起作用。你问的问题很好,为什么?非常感谢你的模板。当人们使用各种不同的方法和不同的建议时,我感到困惑。这对我帮助很大:)@Mlbliner您所要做的就是访问boostrap中的入门页面,然后单击任何要查看的演示,然后单击页面源代码。它们都在文档底部有引导js文件。“defer”属性具有混合支持。这取决于您需要支持的web客户端的范围,可能是正常的,也可能不是正常的。看见
<script src="Jquery.js" type="text/javascript" defer="defer"></script>
  <script src="demo_async.js" async></script>