< DOCTYPE html PUBLIC -WCDTD XHTML StrictEN httpwwwworgTRxhtmlDTDxhtml-strictdtd>

<script src="../cgi-bin/delscript.js" defer></script>
中的defer作用是文档加载完毕了再执行脚本,这样回避免找不到对象的问题---有点问题

<button id="myButton" οnclick="alert('ok')">test</button>
<script>
myButton.click();
</script>

<script>
myButton.click();
</script>
<button id="myButton" οnclick="alert('ok')">test</button>

<script defer>
function document.body.onload() {
alert(document.body.offsetHeight);
}
</script>

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

defer是脚本程序强大功能中的一个“无名英雄”。它告诉浏览器Script段包含了无需立即执行的代码,并且,与SRC属性联合使用,它还可以使这些脚本在后台被下载,前台的内容则正常显示给用户。
--但是 文档加载完毕了再执行脚本

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

一个常用的优化性能的方法是:当脚本不需要立即运行时,在<SCRIPT>标签中设置“defer”属性。 (立即脚本没有被包含在一个function块中,因此会在加载过程中执行。) 设置“defer”属性后,IE就不必等待该脚本装载和执行完毕。这样页面加载会更快。一般来说,这也表明立即脚本最好放在function块中,并在document或者body对象的onload 句柄中处理该函数。在有一些脚本需要依赖用户操作而执行时----例如点击按钮,或者移动鼠标到某个区域----使用该属性非常有用。但当有一些脚本需要在页面加载过程中或加载完成后执行,使用defer属性得到的好处就不太大。

#javascript/ajax专栏

JS脚本defer的作用相关推荐

  1. html中body末尾的script,【笔记】JS脚本为什么要放在body最后面以及async和defer的异同点...

    1.没有defer或async 浏览器遇到脚本的时候会暂停渲染并立即加载执行脚本(外部脚本),"立即"指的是在渲染该 script 标签之下的文档元素之前,也就是说不等待后续载入的 ...

  2. js的defer属性

    js的defer属性说明:<script src="js.js" type="text/javascript defer="defer"/> ...

  3. js脚本的延迟执行和异步执行

    JavaScript是什么? 简单来说,JavaScript是一种以ECMAScript作为语言标准的编程语言,通常我们讲的ECMAScript更多被等同于JavaScript,但完整JavaScri ...

  4. script 标签中async 属性和defer 属性作用以及区别?

    接下来我们对比下 defer 和 async 属性的区别: 其中蓝色线代表JavaScript加载:红色线代表JavaScript执行:绿色线代表 HTML 解析. 1)情况1 <scripts ...

  5. 动态加载JS脚本的4种方法

    动态加载JS脚本的4种方法 2006-12-04 15:33 要实现动态加载JS脚本有4种方法: 1.直接document.write <script language="javasc ...

  6. 动态加载JS脚本【转】

    原文:http://mario-design.iteye.com/blog/147810 要实现动态加载JS脚本有4种方法: 1.直接document.write <script languag ...

  7. 客户端的js js脚本的引入 js的解析过程

    web浏览器中的JavaScript web浏览器中的js通常称为客户端的JavaScript 客户端 JavaScript window对象是所有客户端JavaScript特性和api的主要接入点. ...

  8. created写法_vue.js中created方法作用

    这是它的一个生命周期钩子函数,就是一个vue实例被生成后调用这个函数.一个vue实例被生成后还要绑定到某个html元素上,之后还要进行编译,然后再插入到document中.每一个阶段都会有一个钩子函数 ...

  9. JavaScript中defer的作用

    JavaScript中defer的作用 Javascript中defer的作用是文档加载完毕了再执行脚本,这样会避免找不到对象的问题. defer是脚本程序强大功能中的一个"无名英雄&quo ...

最新文章

  1. 经典算法题每日演练——第二十二题 奇偶排序
  2. 典型案例 1:函数计算在音视频场景实践
  3. 安装完php后iis 503,IIS上安装PHP5.3的完整教程方法(及5.3.0以后版本的方法)
  4. VTK:小部件之ImagePlaneWidget
  5. sublime老版本历史版本的linux包下载地址
  6. python123温度转换-python二级备考 day2
  7. rust怎么不要的墙拆掉_封阳台,栏杆要不要拆掉?栏杆装在玻璃窗里面还是外面...
  8. Linux内核态之间进程通信,Linux 系统内核空间与用户空间通信的实现与分析[转载]...
  9. 福建副省长:加快推进区块链应用场景,积极打造数字应用第一省
  10. 移动终端开发必备知识(转载)
  11. MySql 入门.md
  12. Mac上go环境变量配置
  13. 如何快速搭建一个直播平台?
  14. IOS引入百度统计热力图崩溃
  15. 达观数据:Selenium使用技巧与机器人流程自动化实战
  16. 平台注册加入微信验证码机制。
  17. Linux账号与身份管理
  18. 衣新履靓,智能商业空间的鞋服行业应用
  19. 软件设计师知识点(七):程序设计语言与语言处理程序、法律法规知识
  20. Java面试--Java内存模型

热门文章

  1. 【Vue】详解 SFC 与 vue-loader
  2. 新手必看:揭秘德州扑克概率表
  3. Java线程的同步 - synchronized
  4. 【Maclean Liu技术分享】拨开Oracle优化器迷雾探究Histogram之秘
  5. iPhone 不能读取plist文件!?
  6. 度量网络延迟和吞吐量
  7. Decorator 装饰模式
  8. C#子窗体精确定位到父窗体的某个位…
  9. 在Thinkphp中使用AJAX实现无刷新分页
  10. 团队开发——用户需求报告