JS脚本defer的作用示例介绍


Posted in Javascript onJanuary 02, 2014
<script src="../cgi-bin/delscript.js" defer></script> 
中的defer作用是文档加载完毕了再执行脚本,这样回避免找不到对象的问题---有点问题 
<button id="myButton" onclick="alert('ok')">test</button> 
<script> 
myButton.click(); 
</script> 
<script> 
myButton.click(); 
</script> <button id="myButton" onclick="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属性得到的好处就不太大。

都是defer惹的祸,这两天网站查看全文出错的原因

<p style='line-height: 150%;text-indent: 15pt;'>上周末,本站投放了Google广告,当时为了防止广告的投入延长页面导入的时间,修改了下Google Ad代码,<script>使用了defer延迟导入广告,我一直使用的是FireFox浏览器,一直没发现有问题,今天,有朋友上本站查资料,她用的是Maxthon,告诉我一查看文章,页面就一闪就过去了,这才知道有问题,我说这两天这么网站的访问一直在掉呢,一查原因,才发现是defer的原因,因为在Firfox中defer好象是失效的,页面实际还是原始内容一起载入了,而在IE中,由于延后载入脚本,对于Google Ad脚本来说,其使用的是Document.write的写入方法,并且因为defer的原因,Google AD的脚本检测为iframe了,所以当获取到Google 广告的实际内容的时候就把整个页面给覆盖了,也就造成了查看全文一闪而过的现象。</p>

<p style='line-height: 150%;text-indent: 15pt;'>这都怪我修改了代码没这么测试,以后不管改什么都需要在IE和FireFox中都测试通过才可以,对于这两天造成大家的访问困难致以最最真挚的道歉!</p>
<p style='line-height: 150%;text-indent: 15pt;'>另:推荐大家使用FireFox访问本站,访问和解析速度以及页面布局的一致性都更好!</p>

Javascript 相关文章推荐
不用MOUSEMOVE也能滑动啊
May 23 Javascript
utf-8编码引起js输出中文乱码的解决办法
Jun 23 Javascript
两个Javascript小tip资料
Nov 23 Javascript
jquery 中多条件选择器,相对选择器,层次选择器的区别
Jul 03 Javascript
jQuery实现图片放大预览实现原理及代码
Sep 12 Javascript
一个用jquery写的判断div滚动条到底部的方法【推荐】
Apr 29 Javascript
几行js代码实现自适应
Feb 24 Javascript
浅谈 Vue v-model指令的实现原理
Jun 08 Javascript
Bootstrap模态框插入视频的实现代码
Jun 25 Javascript
Vue页面跳转动画效果的实现方法
Sep 23 Javascript
VsCode与Node.js知识点详解
Sep 05 Javascript
Vue过滤器(filter)实现及应用场景详解
Jun 15 Vue.js
Javascript中常见的校验如域名、手机、邮箱等等
Jan 02 #Javascript
JavaScript四种调用模式和this示例介绍
Jan 02 #Javascript
ParseInt函数参数设置介绍
Jan 02 #Javascript
JS中Date日期函数中的参数使用介绍
Jan 02 #Javascript
JavaScript中Math对象方法使用概述
Jan 02 #Javascript
javascript数组快速打乱重排的方法
Jan 02 #Javascript
利用进制转换压缩数字函数分享
Jan 02 #Javascript
You might like
PHP产生随机字符串函数
2006/12/06 PHP
php递归删除目录下的文件但保留的实例分享
2014/05/10 PHP
php使用escapeshellarg时中文被过滤的解决方法
2016/07/10 PHP
php实现文件与16进制相互转换的方法示例
2017/02/16 PHP
用js实现多域名不同文件的调用方法
2007/01/12 Javascript
改版了网上的一个js操作userdata
2007/04/27 Javascript
jQuery each()方法的使用方法
2010/03/18 Javascript
自己实现string的substring方法 人民币小写转大写,数字反转,正则优化
2012/09/02 Javascript
Jquery和JS用外部变量获取Ajax返回的参数值的方法实例(超简单)
2013/06/17 Javascript
详解JavaScript语法对{}处理的坑爹之处
2014/06/05 Javascript
js实现文本框宽度自适应文本宽度的方法
2015/08/13 Javascript
node.js连接mongoDB数据库 快速搭建自己的web服务
2016/04/17 Javascript
js基于cookie方式记住返回页面用法示例
2016/05/27 Javascript
jQuery用FormData实现文件上传的方法
2016/11/21 Javascript
node文件批量重命名的方法示例
2017/10/23 Javascript
JS字符串常用操作方法实例小结
2019/06/24 Javascript
vue自动化路由的实现代码
2019/09/30 Javascript
vue实现吸顶、锚点和滚动高亮按钮效果
2019/10/21 Javascript
JS实现网页时钟特效
2020/03/25 Javascript
基于jquery实现彩色投票进度条代码解析
2020/08/26 jQuery
javascript实现左右缓动动画函数
2020/11/25 Javascript
Python for Informatics 第11章之正则表达式(二)
2016/04/21 Python
python虚拟环境的安装配置图文教程
2017/10/20 Python
python批量查询、汉字去重处理CSV文件
2018/05/31 Python
APIStar:一个专为Python3设计的API框架
2018/09/26 Python
python实现大转盘抽奖效果
2019/01/22 Python
python属于解释型语言么
2020/06/15 Python
巴西图书和电子产品购物网站:Saraiva
2017/06/07 全球购物
VICHY薇姿英国官网:全球专业敏感肌护肤领先品牌
2017/07/04 全球购物
体育教育个人自荐信范文
2013/12/01 职场文书
学校安全教育制度
2014/01/31 职场文书
教师个人学习总结
2015/02/11 职场文书
银行求职信模板
2015/03/20 职场文书
客户付款通知书
2015/04/23 职场文书
golang操作rocketmq的示例代码
2022/04/06 Golang
处理canvas绘制图片模糊问题
2022/05/11 Javascript