优化加载和执行提高javascript性能

一、在HTML中使用javascript
1、<.script><./script>
script

<script type="text/javascript">/*必须只有type属性,可能还有defer*/
			function sayHi(){
   
				alert('Hi!');
			};
</script>

Js解析器在执行的时候是从上下依次执行,在所有js代码执行完之前,页面的其他部分是不允许下载,执行的。

引用外部的javascript

<script type="text/javascript" src="demo.js">/*必须只有type,src属性,可能还有defer,async*/
		/*无任何代码*/
</script>

Js解析器在加载和执行外部js文件的时候,和内嵌js执行一样,其他的部分不允许下载执行。
2、<.noscript><./noscript>

<noscript>
		<p>Your browser does not support JavaScript!</p> </noscript>

只有在浏览器不支持脚本,或者浏览器支持脚本但是被禁止的情况下才显示noscript里面的内容,其他情况下,不显示。这个元素可以放在body元素中任意位置,但是不能放在script元素中。

二、提高javascript的性能
Javascript在加载执行时存在的问题?

 无论是内嵌的javascript还是外部引用的javascript,当js解析器执行到<.script>标签的时候,使得整个页面由于要加载和执行js代码而等待,图片等其他资源的加载被阻塞。这种等待或阻塞在某些情况下是必须的,比如通过document.write( )修改DOM树的结构时。

为什么javascript的加载和执行不能和css文档或者图片这些资源并行加载呢?

 当浏览器从服务器接收到了HTML文档,并把HTML在内存中转换成DOM树。在转换的过程中如果发现某个节点(node)上引用了CSS或者image,就会再发1个request去请求CSS或image,然后继续执行下面的转换,而不需要等request的返回,当request返回后,只需要把返回的内容放入到DOM树中对应的位置就OK。但当引用了JS的时候,浏览器发送1个js request就会一直等待该request的返回。因为浏览器需要1个稳定的DOM树结构,而JS中很有可能有代码直接改变了DOM树结构,比如document.write 或 appendChild,甚至是直接使用的location.href进行跳转,浏览器为了防止出现JS修改DOM树,需要重新构建DOM树的情况,所以就会阻塞其他的下载和呈现.

Js,css代码在html文档中的位置优化。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值