• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
西门吹雪
非我伤春春伤我,风一阵,雨一阵,好景不在哀残痕。 非我厌世世厌我,闲言来,碎语去,红颜憔悴心头冷。
博客园    首页    新随笔    联系   管理    订阅  订阅

JS执行时间 Internet Explorer无法打开Internet站点

internet explore 无法打开internet站点...,已终止操作原因及解决办法:

1.html标签有遗漏(缺结束标记)
2.js问题,有可能是页面没加载完毕引起的. 加defer属性.

〓关键点〓:

加上defer等于在页面完全载入后再执行,相当于 window.onload ,但应用上比 window.onload 更灵活!

页面载入判断

对于含有<iframe>的页面,错就错在 <iframe 这里了,页面还没完成,就跑 <iframe ,<iframe 还没引发完成就跳转,导致游览器中断,所以就出现了 “internet explore 无法打开internet站点...,已终止操作”


Script中的Defer属性 JS性能 系统性能
script中的defer属性默认情况下是false的。按照DHTML编程宝典中的描述,对于Defer属性是这样写的:
Using the attribute at design time can improve the download performance of a page because the browser does not need to parse and execute the script and can continue downloading and parsing the page instead.
也就是说:如果是编写脚本的时候加入defer属性,那么浏览器在下载脚本的时候就不必立即对其进行处理,而是继续对页面进行下载和解析,这样会提高下载的性能。
这样的情况有很多种。比如你定义了很多javascript变量,或者在引用文件(.inc)中写了很多的脚本需要处理,那不妨在这些脚本中加入defer属性,对性能的提高肯定有所帮助。
举例如下:
<script language="javascript" defer>
....
//defer属性默认=false
//<script language="javascript" defer>显式声明defer属性后等同于<script language="javascript" defer=true>
</script>

声明了defer属性之后,需要判断是否有别的变量引用了defer脚本块中的变量,否则的话会导致脚本错误的产生。

注意: 
1、不要在defer型的脚本程序段中调用document.write命令,因为document.write将产生直接输出效果。 
2、不要在defer型脚本程序段中包括任何立即执行脚本要使用的全局变量或者函数。


     在你的网页已截入完成后,你想动态添加JS脚本时用的,如果你只是object.innerHTML = "<script" + ">"..."</script" + ">";那么当你调用你这个新定义的东东就会出错,说还未定义,当你在上面的代码加入defer时那么你就能成功调用它,在下面的代码中你可以试下把它去掉, defer ,那么你就会发现问题!
<HTML>
<SCRIPT>
function insertScript(){
var sHTML="<input type=button onclick=" + "go2()" + " value='Click Me'><BR>";
var sScript="<SCRIPT defer>";
sScript = sScript + "function go2(){ alert('Hello from inserted script.') }";
sScript = sScript + "</SCRIPT" + ">";
ScriptDiv.innerHTML = sHTML + sScript;
} 
</SCRIPT>
<BODY onload="insertScript();">
<DIV ID="ScriptDiv"></DIV>
</BODY>
</HTML>

//defer属性指示该段脚本不会改变文档的内容。在文档完全显示之前,js解释器不执行这段代码。
具体到这个例子,因为js不允许动态生成js代码,所以去掉defer后产生的代码会被认为是非法的。加上defer后的代码,会被解释器认为是载入页面的时候跳过去的,可以执行。

posted @ 2009-08-25 10:39  西门吹雪  阅读(738)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3