我们首先需要新建一个html5的页面,其使用的progress元素实在html5时代才出现的。
我们在新建的页面中,输入一个段落标签,一个进度条,一个button按钮。
然后,我们需要设置一下进度条显示的进度。value代表从多少开始,max代表到多少结束。我们做的是百分比形式的,应该写成这样的。
这些做好之后,我们需要书写两个小的事件,实现原理大体上是鼠标单击下载按钮,开始下载变为正在下载百分之多少,等到达到我们预设的时间后显示下载完成。
我们之前已经给p标签和progress标签分别赋予了不同的id,我们需要获取到这两个元素,并将他们赋给两个变量。
我们还要将progress的初始值设为0,当鼠标单击的时候,我们以一定的时间为周期调用写好的事件。
函数写好之后,我们在浏览器中调试,点击下载按钮之后会在300ms内完成下载时间。
页面的渲染有以下特点:单线程事件轮询
定义明确、连续、 *** 作有序(HTML5)
分词和构建DOM树
请求资源并预加载
构建渲染树并绘制页面
具体来说:
当我们从网络上得到HTML的相应字节时,DOM树就开始构建了。由浏览器更新UI的线程负责。当遇到以下情况时,DOM树的构建会被阻塞:
HTML的响应流被阻塞在了网络中
有未加载完的脚本
遇到了script节点,但是此时还有未加载完的样式文件
渲染树构建自DOM树,并且会被样式文件阻塞。
由于是基于单线程的事件轮询,即使没有脚本和样式的阻塞,当这些脚本或样式被解析、执行并且应用的时候,也会阻塞页面的渲染。
一些不会阻塞页面渲染的情况:
定义的defer属性和async属性的
没有匹配的媒体类型的样式文件
没有通过解析器插入script节点或样式节点
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)