以下两个代码片段均有效:
在js文件中使用IIFE:
(function initialize() {
txtInput = document.getElementById('txtInput');
txtResult = document.getElementById('txtResult');
txtInput.value = "0";
txtResult.value = "0";
}());
Calling initialize()
html 文件中的窗口加载事件:
window.addEventListener('load', initialize, false);
其中一种方法是否比另一种更好?是在性能方面还是其他方面?就目前情况而言,我更倾向于向窗口对象添加事件侦听器,因为它更具可读性。
这取决于您希望代码何时运行。如果您希望代码尽快执行,您可以使用 IIFE,但如果您不使用 IIFE 来保护变量和/或不污染全局范围,那么使用 IIFE 确实没有任何意义。
(function initialize() {
// do somthing
}());
or
// do somthing
将在同一时间点执行。
如果您想推迟执行,Web 开发人员通常会使用三个时间点。<script>
s 在底部,DOMContentLoad 和 window.onload。
-
<script>
底部的 s 将在从服务器获取后执行。
-
DOMContentLoaded
基本上尽快执行</html>
已被 HTML 解析器读取。
- 非常简化
window.onload
在所有 CSS 之后执行,<img>
es and <script>
已加载。
请注意,实际上,具有如下属性async
and defer
on <script>
s,这个比较复杂,。这就是为什么有大量可用的资源加载器。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)