我曾尝试自己找到答案,但只找到了有关如何使用 onload 事件的说明。我似乎没有捕获重点。

有人告诉我,如果我想在页面加载时发生某些事情,我应该像这样使用 window.onload:

<script>
    window.onload = dosomething();

    function dosomething()
    {
        window.alert('hello');
    }
</script>

但现在我自己在思考,我想知道这样做的意义是什么。因为这也会产生相同的结果:
<script>
    dosomething();

    function dosomething()
    {
        window.alert('hello');
    }
</script>

无论如何,我放在 <script> 顶部的任何内容都会执行……那么 window.onload 的意义何在?

最佳答案

如果您直接使用 dosomething(); 运行代码,则会延迟浏览器的渲染,因为 JavaScript 代码需要运行。

您可以尝试将代码插入到 html 文档的 <head> 中:

<!DOCTYPE html>
<html>
<head>
<script>
dosomething();

function dosomething()
{
    window.alert('hello');
}
</script>
</head>
<body>
Does not render before the alert is dismissed!
</body>
</html>

您会看到页面保持空白,直到您关闭警报。因此,浏览器运行 JavaScript 代码的每一秒都是用户必须等待网站呈现的一秒。

现在,如果您更改要在 body 的 onload 上运行的代码,页面将在显示警报之前呈现:
<!doctype html>
<html>
<head>
<script>
function dosomething()
{
    window.alert('hello');
}
</script>
</head>
<body onload="dosomething()">
This page gets rendered before the alert!
</body>
</html>

关于javascript - 为什么使用 window.onload,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35951299/

10-16 21:59