有没有使用window.onload=function(){};比onload=function(){};更好的优势?我知道window.onload看起来更正式,但这并不是我选择它的好理由,特别是因为它比onload更长/慢。经过一些耗时的搜索和测试,这两种方法是唯一兼容浏览器的方法,在相对较新的Chrome/Firefox版本和IE 5.5至9上进行了测试。
我找到了这篇文章,它是与我的问题最相关的文章之一:
因此问题是:除了"use strict;"之外,使用直接的onload赋值是否存在任何真正的缺点?我需要信息而不是一些没有解释的意见。
谢谢
注意:在提问之前,我进行了搜索(看起来有点老套),我能找到的最接近的问题是关于window.onload与<body onload="">、其他替代window.onload等的问题。
编辑:我创建了这个测试用例onload vs window.onload,证明了onload有多快。我真的会去做这种微小的优化,因为为什么不呢?它们有时候很酷。
window.onload // works in all tested browsers
onload // works in all tested browsers, faster than window.onload
document.onreadystatechange // works twice in some browsers, once in some others, could be confusing
window.onpageshow // works in chrome and firefox, not in IE
window.onreadystatechange // doesn't work
document.onload // doesn't work
document.onpageshow // doesn't work
window.document.onload // doesn't work
我找到了这篇文章,它是与我的问题最相关的文章之一:
http://perfectionkills.com/onloadfunction-considered-harmful/
它指出ECMA-262第5版的严格模式("use strict";我不打算在我的项目中使用)最终可能导致某些浏览器不兼容onload(在Firefox和Opera中出现ReferenceError)。因此问题是:除了"use strict;"之外,使用直接的onload赋值是否存在任何真正的缺点?我需要信息而不是一些没有解释的意见。
谢谢
注意:在提问之前,我进行了搜索(看起来有点老套),我能找到的最接近的问题是关于window.onload与<body onload="">、其他替代window.onload等的问题。
编辑:我创建了这个测试用例onload vs window.onload,证明了onload有多快。我真的会去做这种微小的优化,因为为什么不呢?它们有时候很酷。