到底JS文件的引入放置在头部好还是尾部好?

统计工具说是将JS文件放置在body标签之后会提升加载速度。不过最终我们还是放置在了head标签里。这里就涉及到一个JS文件位置的选择。到底JS文件的引入放置在头部好还是尾部好?今天小编和大家探讨,JS文件到底该放置最好。

  具体将引入的JS放在哪里与代码执行的顺序有关。网页文件的读取是从上到下的,如果将JavaScript文件放置在head当中,会先加载JS文件,之后再继续执行,那么此时,如果JS文件比较大,页面加载就会很慢,导致空白。

  那么,如果将JavaScript文件放置在底部,如果说,也是比较大型的JS文件的话,是不是就没有问题了呢?

  其实,如果将JS文件放置在底部的话,可以让JS文件与图片几乎同时下载,使得页面当中的内容能够尽快的下载下来,但是,由于网页基本结构与样式均已经加载完成,那么此时负责交互的JS并没有下载下来,必然也会对用户的体验造成影响。

  因此,整体来说,如果“交互性优先”,那么我们应当将JS放置在顶部。如果对于交互性要求没那么高的页面,我们将JS放置在底部。

  阻塞方式加载JS:JavaScript在头部会阻止其他元素并行加载(css,图片,网页)。目前绝大部分的浏览器都是采取阻塞方式(ScriptsBlockDownloads)进行JavaScript文件的加载的。

  更好的解决方法?

  一般大型的网站都会采取非阻塞方式加载JavaScript来提高性能(降低页面加载时间),如使用iframe,动态添加script节点等来并行下载JavaScript文件。不过目前用得最多的应该还是动态添加script节点的方法。

  以上就是小象慢跑在网站建设中所注意到的JavaScript文件放在头部或者尾部的判断准则,如果还有更好的方式,欢迎跟小编一起探讨。

  

原文地址:http://blog.51cto.com/13591336/2073123

时间: 2024-08-29 09:32:52

到底JS文件的引入放置在头部好还是尾部好?的相关文章

Bootstrap的基本使用(css、js文件的引入)

使用Bootstrap需要引入官方的文件 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>Bootstrap3示例</title> <link hre

关于Yii2中CSS,JS文件的引入心得

1.在view中 use yii\helpers\Html; <?=Html::jsFile('@web/***/js/***.js')?>//这里***代表你的目录名或者文件名 <?=Html::cssFile('@web/***/css/***.css')?>//***同上 2.布局 public $layout = 'layout';//在类中定义一个变量,名为$layout的php文件 <?php echo $content; ?> 3.跳转链接 use yii

如何在一个js文件中引入另外的js文件

例如想要在a.js中引用b.js.c.js和d.js document.write("<script language='javascript' src='b.js'></script>"); document.write("<script language='javascript' src='c.js'></script>"); document.write("<script language='ja

JavaScript的8行代码搞定js文件引入问题

单页面的操作,免不了会有各种jsp的嵌套问题,一个操作页面里面可能涉及到几十甚至上百个jsp页面. 平常我们对用到的js文件的引入,都会放到index的header里面.如图: 但是,让我们思考三个问题: 1.当业务需要,用到iframe的时候,那么iframe页面将不能再直接调用index引入的js文件 2.假如我这个项目有100个jsp页面,有一个js文件只有其中一个jsp要使用,我将这个js放到index的header区,每次一加载项目都会加载它,是不是延长了项目加载时间. 3.针对问题二

手机端调试console.log,直接引入一个js文件

http://files.cnblogs.com/files/lwwen/mConsole.js 这是我写的一个原生js文件 直接引入即可,可以把html上面的需要打印的东西打印出来 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <meta name="Viewport" content="width=320,initial-scale=1.0

CI框架引入外部css和js文件

首先在项目根目录下建立assets文件夹,在这个文件夹下再建立css和js文件夹分别放置css和js文件 然后,在项目根目录下建立.htaccess文件 内容如下: RewriteEngine on      RewriteCond $1 !^(index\.php|images|robots\.txt|js|css|upimg|artDialog|style|sphinx_auth|assets)      RewriteRule ^(.*)$ index.php/$1 [L] 把上面的ass

自己编写jQuery动态引入js文件插件 (jquery.import.dynamic.script)

这个插件主要是结合jquery或者xhr异步请求来使用的,它可以把已经引入过的js文件记录在浏览器内存中,当下次再引入相同的文件就忽略该文件的引入. 当你用$.load("dir/my-page.jsp"); 或xhr.request("server/to-my-page");等异步请求加载html页面的时候,在页面中导入js文件用本插件进行引入的话, 那么其他请求的页面中也导入了和前面页面相当的js文件的情况下,那这些js文件就不需要重新引入.插件会自动忽略之前已

vue引入自己写的js文件

话不多说,直接上代码呀~ 先来个结构图: 中规中矩的vue-cli就写了一个自己的js文件 那么我想要引入到vue组件里. 1.首先写我的js文件 2.引入到vue组件!!!一定要用{}把方法名拿过来 3.可以开心使用了 [关于引入第三方插件:简单的说一下三种方式] 一.可以cdn直接引入到index.html里,记得放在</body>前面哦 二.配置webpack : 1.首先在package.json里加入, dependencies:{ "jquery" : &quo

关于js预编译以及js文件执行顺序的几个问题。

关于js的执行原理,除去html页面中直接添加的代码,js代码的放置可以分为两类. //情形a           <script type="text/javascript" src="xxx.js"$amp;>amp;$lt;/script>           //情形b            <script type="text/javascript">           code......