JS属性defer的好处及IE8 提示 KB927917, IE6 IE7 提示操作已中止的解决办法

其实就是简单的利用defer属性,让浏览器读JS脚本的时候完全不等脚本开始读就开始读下面的图片啊,html代码了。然后让js脚本自己在那里慢慢读取完以后再执行。

给外链的js脚本添加defer="true",像下面这个这样就可以了:

<script defer="true" src="JavaScript.js" type="text/javascript"/>

特别是比较大的脚本,提高整个网页的载入速度是非常明显的。

注意defer="true"还可以用作defer="defer",似乎使用defer="defer"比较普遍,我查看一个微软的文档,好像XTHML格式的网页用defer="true"比较恰当。

另外注意,defer="true"这个东西不要在脚本程序段中调用document.write命令,因为将产生直接输出效果

如果不显式声明 defer ,则其默认值 是false

defer 和onload的执行顺序的问题

Js代码

<script language="JavaScript" type="text/javascript" defer="defer">

       alert('defer里的内111容')

</script>

<script language = 'javascript' type='text/javascript'> alert('普通的script'); window.onload = function(){alert('onload里的script')}; </script>

<body> ###################################################

########################################################

########################################################

################################ <br>

<script language = 'javascript' type='text/javascript'> alert('页面的script'); </script>

◎◎◎◎◎◎◎◎◎◎◎◎◎ ◎◎◎◎◎◎◎◎◎◎◎◎◎ ◎◎◎◎◎◎◎◎◎◎◎◎◎ ◎◎◎◎◎◎◎◎◎◎◎◎◎

◎◎◎◎◎◎◎◎◎◎◎◎◎ ◎◎◎◎◎◎◎◎◎◎◎◎◎ ◎◎◎◎◎◎◎◎◎◎◎◎◎ ◎◎◎◎◎◎◎◎◎◎◎◎◎

◎◎◎◎◎◎◎◎◎◎◎◎◎ ◎◎◎◎◎◎◎◎◎◎◎◎◎ ◎◎◎◎◎◎◎◎◎◎◎◎◎ ◎◎◎◎◎◎◎◎◎◎◎◎◎

◎◎◎◎◎◎◎◎◎◎◎◎◎ ◎◎◎◎◎◎◎◎◎◎◎◎◎ </body>

普通的,边解释,边执行。
DEFER,网页脚本代码加载完后执行。
ONLOAD,所有内容(包括图片等)加载完后执行。

IE8 提示 KB927917, IE6 IE7 提示操作已中止的解决办法

见的解决方法:
1。将JS放到后面去 --- 最直接的方法
2。在JS前加入setTimeout("xxxx()",500); --- 即这段时间留给页面先加载去
3。If(document.all && document.body.readyState=="complete") --- 即等待页面加载完成再加载JS(貌似JQURY中的$(function() {});直接默认了这个方法)
4。在JS后加入defer="defer"---简单直接,正在使用

原文地址:https://www.cnblogs.com/dwfbenben/p/2642227.html