在HTML文件中应该放置Jquery和Bootstrap?

Mlb*_*ner 19 javascript css jquery twitter-bootstrap

好奇我放置Jquery和Bootstrap文件的位置.他们建议您始终将底部放在底部以达到性能目的,但当我检查使用Jquery/Bootstrap的网站时,大多数用户总是将它们放在顶部.我还应该在bootstrap/Jquery文件之前或之后加载我自己的JavaScript文件吗?

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

Ale*_*lex 34

通常在结束</body>标记之前的头部和脚本中的样式表:

<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>
Run Code Online (Sandbox Code Playgroud)

您需要将来自jQuery和Bootstrap等供应商的文件包含您的文件之前.这意味着:

  • CSS:您可以用自己的*覆盖他们的样式
  • 脚本:您可以访问添加到全局范围的任何对象,例如window(jQuery添加$,例如)

但是,如果您需要在加载内容之前使用脚本(例如Modernizr),那么将其放入其中<head>可确保它在您的任何内容之前就绪.

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

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


Gar*_*rry 5

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

<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>
Run Code Online (Sandbox Code Playgroud)

尽管在某些情况下,如果您的任何函数需要在页面加载之前访问 JavaScript,则可能需要在页面加载之前加载 JavaScript。特别是如果您正在使用 JQuery UI 和 Bootstrap。

您可以使用 属性来装饰您的脚本标签defer,以便浏览器知道在下载 HTML 后下载您的脚本:

<script src="Jquery.js" type="text/javascript" defer="defer"></script>
Run Code Online (Sandbox Code Playgroud)

或者

  <script src="demo_async.js" async></script> 
Run Code Online (Sandbox Code Playgroud)

如果存在,它指定脚本一旦可用就将异步执行。

http://www.w3schools.com/tags/att_script_async.asp

如果您需要脚本在页面中访问以供使用,则脚本需要在使用之前可用。虽然需要确保浏览器支持 defer="defer"。所有主流浏览器都支持异步。

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

样式CSS需要出现在顶部<Head>才能在页面中访问。

  • “defer”属性有不同的支持。这可能行也可能不行,具体取决于您需要支持的 Web 客户端的范围。请参阅http://caniuse.com/#feat=script-defer (3认同)