javascript单独执行顺序和javascript和html混合执行顺序

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/flightsmallbird/article/details/80423674

一、单独讨论javascript的执行顺序

1 只有原生的javascript,没有jquery。

    1.1在<head>里面的JS谁写在前面,谁就优先执行。

    1.2在<body>里面的JS要比<head>里面的JS后执行,因为html代码是先执行<head>再执行<body>的。同理JS谁写在前面,谁就优先执行。

    1.3最后页面全部加载完成之后,就是从<head>一直到<body>全部执行完,触发页面加载完成函数onload()。

2.使用jquery的情况。

     2.1在引入Jquery之后,执行顺序的基本原则还是一样的,谁先被引用谁就优先执行,所不同的是:$.(function)方法要在onload()方法之前执行。


总结:

    JS的执行顺序,由HTML的加载顺序决定,谁写在前面,谁就优先执行(无论是写在页面上的JS代码还是引入的JS文件),最后执行onload()方法。如果有Jquery的$(function)或者$(document).ready(function(){}),其原则跟上面的原则一致,有出入的是:它优先onload()方法执行。


二、javascript和html混合执行顺序

    1.<head>中的内容按从上往下的顺序执行。

   2.<body>中的执行时:从上往下的顺序执行(此时遇到html内容也不会渲染,我的理解是暂时加载到内存),直到遇到第一个<script>会执行完其中的js代码,而后开始渲染html。 一直按照这个顺序执行。假设临近</body>有一个相邻的<p>我是最后的内容</p>,且body有onload 或Jquery的$(function)或者$(document).ready(function(){})的内容,则按顺序执行Jquery的$(function)或者$(document).ready(function(){}),后执行onload,最后渲染<p>我是最后的内容</p>。

    总结:<body>中的js和html执行的顺序是:加载直到<script>之前的所有html到内存(此时不渲染,浏览器上看不到内容),执行完html直接兄弟<script>(此<script>后紧挨着还有<script>也不执行),而后渲染html。加载html->执行script->渲染html。

三、总结:

        这么执行的目的可能是:网页大部分都是先写html,在下面写script,这script中有些对html样式的指定,所以浏览器只能制定先加载html到内存,执行script,而后综合整合样式,后渲染。

注:因时间原因,没放代码的图片。

启发博文:http://1017401036.iteye.com/blog/2107138

猜你喜欢

转载自blog.csdn.net/flightsmallbird/article/details/80423674