根据你的样本,

$(document).ready(function(){

$("#img").attr("src", "kkk.png");

});

执行流程大致如下:下载HTML文档

HTML文档的解析开始

HTML解析达到

HTML解析达到

HTML解析达到

abc.css被下载和解析

HTML解析达到

分析和定义内部css规则。

HTML解析达到

解析并运行内部Javascript。

HTML解析达到

abc.jpg下载并显示

HTML解析达到

HTML文档结束解析

请注意,由于浏览器的行为,下载可能是异步和非阻塞的。例如,在Firefox中,这个设置限制了每个域同时请求的数量。

另外,取决于组件是否已经缓存,组件可能不会在最近的请求中再次被请求。如果该组件已被缓存,则该组件将从缓存中加载,而不是实际的URL。

当解析结束,文档准备就绪并加载时,事件onload被解雇了。所以当onload被解雇,$("#img").attr("src","kkk.png");都跑了。因此:文档准备就绪,启动onload。

JavaScript执行命中

$("#img").attr("src", "kkk.png");

kkk.png被下载并加载到

#img

编辑-这一部分详细阐述了并行或非并行部分:

默认情况下,根据我目前的理解,浏览器通常以3种方式运行每个页面:HTML解析器、Javascript/DOM和CSS。

HTML解析器负责解析和解释标记语言,因此必须能够调用其他两个组件。

例如,当解析器穿过这一行时:a hypertext link

解析器将进行3次调用,其中2次调用Javascript,1次调用CSS。首先,解析器将创建该元素并在DOM命名空间中注册它,以及与该元素相关的所有属性。其次,解析器将调用将onClick事件绑定到这个特定元素。最后,它将再次调用CSS线程,将CSS样式应用于此特定元素。

执行是自顶向下和单线程。JavaScript看起来可能是多线程的,但事实是Javascript是单线程的。这就是为什么在加载外部javascript文件时,主HTML页面的解析会被挂起。

但是,CSS文件可以同时下载,因为CSS规则总是被应用-也就是说元素总是用定义的最新鲜的CSS规则重新绘制-从而使它解除阻塞。

一个元素只有在被解析后才能在DOM中使用。因此,在处理特定元素时,脚本总是放在Window onLoad事件之后或内部。

这样的脚本将导致错误(在jQuery上):

Hello World

因为当脚本被解析时,#mydiv元素仍未定义。相反,这样做是可行的:

Hello World

Hello World

html文件执行顺序,网页的加载和执行顺序?相关推荐

  1. 【Android 逆向】类加载器 ClassLoader ( 使用 DexClassLoader 动态加载字节码文件 | 拷贝 DEX 文件到内置存储 | 加载并执行 DEX 字节码文件 )

    文章目录 一.拷贝 Assets 目录下的 classes.dex 字节码文件到内置存储区 二.加载 DEX 文件并执行其中的方法 三.MainActivity 及执行结果 四.博客资源 一.拷贝 A ...

  2. java js 执行效率_JavaScript提高加载和执行效率的方法

    前言 无论当前 JavaScript 代码是内嵌还是在外链文件中,页面的下载和渲染都必须停下来等待脚本执行完成.JavaScript 执行过程耗时越久,浏览器等待响应用户输入的时间就越长.浏览器在下载 ...

  3. java中类的加载及执行顺序

    为什么80%的码农都做不了架构师?>>>    类的加载顺序  什么时候类加载  第一次需要使用类信息时加载.  类加载的原则:延迟加载,能不加载就不加载. 触发类加载的几种情况:  ...

  4. 25.使用getScript()方法异步加载并执行js文件

    使用getScript()方法异步请求并执行服务器中的JavaScript格式的文件,它的调用格式如下所示: jQuery.getScript(url,[callback])或$.getScript( ...

  5. 使用 pdf.js 在网页中加载 pdf 文件

    在网页中加载并显示PDF文件是最常见的业务需求.例如以下应用场景:(1)在电商网站上购物之后,下载电子发票之前先预览发票.(2)电子政务管理系统中查看发布的公文,公文文件一般是PDF格式的文件. 目前 ...

  6. JavaScript--JQuery事件 当网页元素加载完成后再去执行事件

    1. JQuery事件 JQuery帮助文档: 这里的selector都是CSS选择器的语法 CSS选择器 示例1 弹出提示框: <!DOCTYPE html> <html lang ...

  7. JavaScript 的性能优化:加载和执行

    概览 无论当前 JavaScript 代码是内嵌还是在外链文件中,页面的下载和渲染都必须停下来等待脚本执行完成.JavaScript 执行过程耗时越久,浏览器等待响应用户输入的时间就越长.浏览器在下载 ...

  8. js 和jQuery(自动执行函数)立即执行函数和页面加载完后执行函数写法

    js 立即执行函数的写法. js 立即执行函数只能用于匿名函数,如果声明了函数名是不可以用立即执行的,通常在函数表达式后加一对小括号()用于立即执行 如果想让函数不被调用的情况下,立即自动执行,需要在 ...

  9. linux设备和驱动加载的先后顺序

    点击打开链接 Linux驱动先注册总线,总线上可以先挂device,也可以先挂driver,那么究竟怎么控制先后的顺序呢. Linux系统使用两种方式去加载系统中的模块:动态和静态. 静态加载:将所有 ...

最新文章

  1. SQL Server select into 用法
  2. 重磅!微软发布 vscode.dev,把 VS Code 带入浏览器!
  3. python tk 当输入数值错误是报错_Python的异常处理
  4. 《Adobe Illustrator CS5中文版经典教程》—第0课0.5节使用绘图模式
  5. Jquery对复选框的操作
  6. Silverlight实用窍门系列:28.Silverlight制作随机分布雷达扫描点,模拟雷达扫描图之被扫描设备【附带源码实例】...
  7. 无法安装 计算机缺失,还原安装程序Windows缺失的文件 - Windows Client | Microsoft Docs...
  8. Java Servlet JSP
  9. 大数据_Flink_Java版_数据处理_流处理API_Transform(5)_union合流---Flink工作笔记0034
  10. hyperledger的个人分享
  11. spring源码-自动注入
  12. 祭十大已经逝去的软件
  13. linux weblogic部署项目路径,Weblogic部署web项目获取项目根目录为null
  14. 2021最新显卡天梯图,2021显卡天梯排行榜
  15. Masonry自动布局详解五:比例(multipliedBy)
  16. 第一类与第二类曲面积分的关系与变换
  17. 如何为XenServer虚拟机linux系统安装XenServer Tools
  18. Android 操作系统基础
  19. 宗镜录略讲——南怀瑾老师——系列9
  20. python中的输出list中元素方法_python 输出所有列表元素的乘积

热门文章

  1. Android学习笔记--JNI的使用方法
  2. ASP.NET MVC中如何以ajax的方式在View和Action中传递数据
  3. RSA加密算法原理及RES签名算法简介(转载)
  4. 做组织机构树状图 spark
  5. 创立一家互联网公司,需要几步?
  6. 社区运营破冰也有三大原则八项注意“了,你造吗?
  7. 【分析】大数据爆破之年:在这5个领域“掘金”最靠谱
  8. 怎么使用继承的一个实例
  9. java实现-两个栈实现一个队列和两个队列实现一个栈
  10. 百分点集团被APAC CIO Outlook杂志评选为亚太区大数据企业25强