html文件执行顺序,网页的加载和执行顺序?
根据你的样本,
$(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上):
因为当脚本被解析时,#mydiv元素仍未定义。相反,这样做是可行的:
或
html文件执行顺序,网页的加载和执行顺序?相关推荐
- 【Android 逆向】类加载器 ClassLoader ( 使用 DexClassLoader 动态加载字节码文件 | 拷贝 DEX 文件到内置存储 | 加载并执行 DEX 字节码文件 )
文章目录 一.拷贝 Assets 目录下的 classes.dex 字节码文件到内置存储区 二.加载 DEX 文件并执行其中的方法 三.MainActivity 及执行结果 四.博客资源 一.拷贝 A ...
- java js 执行效率_JavaScript提高加载和执行效率的方法
前言 无论当前 JavaScript 代码是内嵌还是在外链文件中,页面的下载和渲染都必须停下来等待脚本执行完成.JavaScript 执行过程耗时越久,浏览器等待响应用户输入的时间就越长.浏览器在下载 ...
- java中类的加载及执行顺序
为什么80%的码农都做不了架构师?>>> 类的加载顺序 什么时候类加载 第一次需要使用类信息时加载. 类加载的原则:延迟加载,能不加载就不加载. 触发类加载的几种情况: ...
- 25.使用getScript()方法异步加载并执行js文件
使用getScript()方法异步请求并执行服务器中的JavaScript格式的文件,它的调用格式如下所示: jQuery.getScript(url,[callback])或$.getScript( ...
- 使用 pdf.js 在网页中加载 pdf 文件
在网页中加载并显示PDF文件是最常见的业务需求.例如以下应用场景:(1)在电商网站上购物之后,下载电子发票之前先预览发票.(2)电子政务管理系统中查看发布的公文,公文文件一般是PDF格式的文件. 目前 ...
- JavaScript--JQuery事件 当网页元素加载完成后再去执行事件
1. JQuery事件 JQuery帮助文档: 这里的selector都是CSS选择器的语法 CSS选择器 示例1 弹出提示框: <!DOCTYPE html> <html lang ...
- JavaScript 的性能优化:加载和执行
概览 无论当前 JavaScript 代码是内嵌还是在外链文件中,页面的下载和渲染都必须停下来等待脚本执行完成.JavaScript 执行过程耗时越久,浏览器等待响应用户输入的时间就越长.浏览器在下载 ...
- js 和jQuery(自动执行函数)立即执行函数和页面加载完后执行函数写法
js 立即执行函数的写法. js 立即执行函数只能用于匿名函数,如果声明了函数名是不可以用立即执行的,通常在函数表达式后加一对小括号()用于立即执行 如果想让函数不被调用的情况下,立即自动执行,需要在 ...
- linux设备和驱动加载的先后顺序
点击打开链接 Linux驱动先注册总线,总线上可以先挂device,也可以先挂driver,那么究竟怎么控制先后的顺序呢. Linux系统使用两种方式去加载系统中的模块:动态和静态. 静态加载:将所有 ...
最新文章
- SQL Server select into 用法
- 重磅!微软发布 vscode.dev,把 VS Code 带入浏览器!
- python tk 当输入数值错误是报错_Python的异常处理
- 《Adobe Illustrator CS5中文版经典教程》—第0课0.5节使用绘图模式
- Jquery对复选框的操作
- Silverlight实用窍门系列:28.Silverlight制作随机分布雷达扫描点,模拟雷达扫描图之被扫描设备【附带源码实例】...
- 无法安装 计算机缺失,还原安装程序Windows缺失的文件 - Windows Client | Microsoft Docs...
- Java Servlet JSP
- 大数据_Flink_Java版_数据处理_流处理API_Transform(5)_union合流---Flink工作笔记0034
- hyperledger的个人分享
- spring源码-自动注入
- 祭十大已经逝去的软件
- linux weblogic部署项目路径,Weblogic部署web项目获取项目根目录为null
- 2021最新显卡天梯图,2021显卡天梯排行榜
- Masonry自动布局详解五:比例(multipliedBy)
- 第一类与第二类曲面积分的关系与变换
- 如何为XenServer虚拟机linux系统安装XenServer Tools
- Android 操作系统基础
- 宗镜录略讲——南怀瑾老师——系列9
- python中的输出list中元素方法_python 输出所有列表元素的乘积