为什么使用window.onload

2024-04-19

我尝试自己找到这个问题的答案,但只找到了有关如何使用 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 代码运行的时间。

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

<!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,页面被渲染before警报显示:

<!doctype html>
<html>
<head>
<script>
function dosomething()
{
    window.alert('hello');
}
</script>
</head>
<body onload="dosomething()">
This page gets rendered before the alert!
</body>
</html>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么使用window.onload 的相关文章

  • JavaScript 日期 + 7 天

    这个脚本有什么问题 当我将时钟设置为 29 04 2011 时 它会添加2011年4月36日在星期输入 但正确的日期应该是6 5 2011 var d new Date var curr date d getDate var tomo da
  • 无法使用 Karma 运行 Coverage

    我正在尝试使用 karma 运行覆盖率 但收到警告 警告 预处理 无法加载 覆盖率 它未注册 我以为我在运行 npm install g karma coverage save dev 时安装了覆盖范围 这是我的配置文件 module ex
  • 类似于 iPhone(老虎机)的网络“选择器”选择框? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在寻找一个类似 iPhone 的 选择器 控件 我可以在网络上使用它 可访问性不是问题 JavaS
  • Node + Express + Nginx 未设置 Cookie

    我有一个使用 Express 的 Node 应用程序 我尝试为我的客户端设置 cookie 它在本地环境 http 上运行良好 但是一旦我投入生产 https 我就很好地收到了cookie 我可以在响应中看到它 但它没有设置 任何想法 Ng
  • JavaScript 中工厂函数与构造函数的性能比较

    所以 当我们有一个简单的构造函数时 function Vec x y this x x this y y 还有一个工厂类似物 function VecFactory x y return x x y y 性能具有可比性 100000000
  • 我可以使用 javascript 捕获并保存网页的当前状态吗

    我需要使用 javascript 获取页面的全部内容并将其发送到服务器脚本以保存它 我想在用户使用 AJAX 和其他 javascript 工具对页面进行一些更改后执行此操作 我不想要某些元素的状态 我想基本上获取 body 标记内的所有内
  • 如何在 vue 组件的树视图中激活子类别?

    我有两个 vue 组件 我的第一个组件 父组件 如下所示
  • 转义双引号 JavaScript

    我试图在 iPhone 上查看时运行某种图像格式 在其他情况下运行一些 Flash 视频 var uagent navigator userAgent toLowerCase if uagent search iphone gt 1 doc
  • 表单验证后 isValid 保持 false

    我有一个自定义验证函数 但即使它没有返回错误 表单仍然无效 我将以下属性传递给 Formik validate import files gt return import files values length 0 import files
  • vue中有自动更新这段代码的东西吗?

    我在导航器中找到了这个按钮 当用户登录时会显示该按钮 而当用户注销时该按钮就会消失 但现在我需要在按钮删除 出现之前刷新页面 这是我的代码 Button div div class div div
  • 是否可以模拟 isTrusted=true

    我希望在调用 touchStart 事件时能够模拟 isTrusted true 是否有任何库或任何类型的解决方法可以实现这一点 以下是我以编程方式运行 touchStart 时的输出与实际调用 touchStart 时的输出 我正在使用移
  • 可选链接不起作用:无法读取未定义的属性“0”[关闭]

    Closed 这个问题需要调试细节 help minimal reproducible example 目前不接受答案 为什么可选链在这里不起作用 html userItemModel item priceList 0 sellerUrl
  • Html页面在底部加载

    我需要一个 HTML 页面在页面加载时自动向下滚动 所以基本上加载在底部 可以使用JavaScipt吗 请您帮助我或引导我走向正确的方向 感谢所有帮助 谢谢 尝试这个 window scroll 0 document documentEle
  • 有没有办法在不托管网站的情况下呈现网站并共享它?

    我正在为一个项目创建一个 repl it 网站 问题是我的老师要求不要发布该网站 这意味着我无法使用 repl it 来托管它 我想知道是否有任何方法可以制作可以通过 Google Chrome 查看的网站副本 而无需连接到主机 我有所有的
  • Jquery 手风琴默认不折叠

    我正在使用 bootstrap 提供的折叠插件 这是一个 jquery 简单插件 但是它默认折叠 如何修改以使折叠项默认隐藏 只有当我按下标题时 该项目才会折叠并显示 谢谢 插件的文档 只有几行 所以只需要一分钟 http twitter
  • 防止IndexedDB请求错误取消事务

    我的意图 循环localStorage并将数据放入IndexedDB 如果发生某些已知错误 例如当键已存在时出现 ConstraintError 我想忽略这些特定错误 以便事务不会中止 当请求触发错误时 中止事务是默认行为 问题 我以为使用
  • 为什么 JavaScript 在不同浏览器中不一致?

    在花了无数个小时修复 JS 以使其跨浏览器兼容 主要是 IE 之后 我一直在思考以下问题 Why不是 JavaScript持续的跨浏览器 我的意思是 为什么 JS 不能像 Java 和 Flash 那样好呢 相反 我们必须求助于 jQuer
  • 使用node和multer将图像上传到heroku不起作用

    我正在尝试使用 Node 后端将图像文件上传到 Heroku 我可以使其工作 同样的过程在本地主机测试中工作得很好 但是在将我的项目部署到 Heroku 并测试它之后 过程和文件中出现错误不会上传 后端 let storage multer
  • 如何了解来自不同...“命名空间”的变量?

    如何从外部 javascript 文件中访问在另一个地方声明的某个变量 假设在一个 html 文件中我有以下内容 在 otherfile html 的部分中 我有 alert a 我如何确保收到一条提示消息 某事 我认为Google Ads
  • JS 中的展开/休息运算符如何工作? [复制]

    这个问题在这里已经有答案了 我正在努力完全理解扩展 休息运算符在 JS 中的工作原理 我已经阅读了 MDN 文档 但我仍然不完全清楚 我在下面提供了一个示例 我在其中使用了它并且它按预期工作 const users name Samir a

随机推荐

  • 为什么需要锁来实现 readonly int 属性?

    我是线程新手 我遇到了一个自定义线程池实现示例blog http ferruh mavituna com net multithreading ve basit bir threadpool implementasyonu oku 我只粘贴
  • iPad 状态栏有时会消失,留下空白 - 但我从不隐藏它!

    我从不隐藏状态栏 但有时它会消失 这种模式似乎是在一些全屏转换之后发生的 从一个视图水平翻转到另一个视图 使用 QLPreviewController 当它被关闭时 状态栏就会消失 但是 我无法重现它 它只是有时会发生 永远不会在模拟器上
  • 强制 iOS 将 Unicode 符号渲染为平面/文本

    iPhone 现在可以自动将 2D unicode 符号转换为 3D 表情符号 例如 我需要 unicode 以传统的黑白字形格式呈现 而且 我无法轻松地将 Unicode 符号替换为图像 因为这是在 UITableView 行的 edit
  • @Request Mapping 中的生产和消费是什么

    我的项目中有以下代码行 RequestMapping value UrlHandler GET AUTHENTICATION produces application json consumes application json metho
  • 如何从不同列条件下的 PySpark 数据帧中提取数组元素?

    我有以下内容PySpark 输入数据框 index valuelist 1 0 10 20 30 2 0 11 21 31 0 0 14 12 15 Where 索引 双精度型 值列表 类型Vector it s 非数组 从上面的输入数据框
  • 程序加载期间添加的菜单项的 Vcl 样式问题

    我有一个 Delphi 10 4 2 程序 32 位 其中在程序加载期间添加菜单项 Application OnActivate 事件 编码为仅运行一次 如果没有 vcl 样式 新项目将正确显示 但是当应用样式时 例如屏幕截图中非常漂亮的
  • 受约束的成员函数和显式模板实例化

    G 和 Clang 一致认为以下代码片段不是有效的 C template
  • 通过观察ViewModel在RecyclerView中搜索PagedList的LiveData

    使用 android Paging 库 可以很容易地从数据库中分块加载数据 并且 ViewModel 提供自动 UI 更新和数据保存 所有这些框架模块帮助我们在 Android 平台上创建一个出色的应用程序 典型的 Android 应用程序
  • php.ini 中的浮点数范围-0 是浮点数吗?

    当我转换字符串时 0 在 float 中 它返回 float 类型 0 example x 0 y float x 结果 gt 浮动 0 why 0是浮点数吗 IEEE 754 标准是几乎所有计算机语言实现浮点数的标准 它具有 0 and
  • Django管理命令中的动态一行输出

    我有一个 Django 管理命令 它执行大量处理 因此我让它以百分比形式输出进度 我想使用答案中描述的技术here https stackoverflow com questions 5290994 python remove and re
  • MariaDB 10 CentOS 7 移动数据目录的问题

    CentOS 7 和 MariaDB 10 的全新 最小 安装 我有一个额外安装的镜像卷 我想将其用于数据目录 当 my cnf mysqld 被注释掉时 启动顺序正常并正常完成 我已经复制了数据 sudo cp R p var lib m
  • Flutter Firestore 查询中可以使用通配符吗?

    我的目标是从路径 chat chattype room roomID message 流式传输数据库中的所有消息 在该路径中我需要查询文档中包含包含 user1 的字符串的所有消息 而无需查询明确指定房间 ID 似乎无法让它与通配符一起工作
  • 访问数据库的用户列表

    我有一个 MySQL 数据库 由我的一群队友访问 有没有命令可以获取当前正在访问或已经访问并注销的用户的日志信息 从 mysql 工具运行以下命令来查看所有当前正在运行的进程 包括睡眠连接 SHOW PROCESSLIST 或者 您可以查询
  • 使用 JComboBox Java Swing 选择颜色

    我有一个 JComboBox 我想让用户在其中选择颜色 JComboBox 仅显示颜色 没有任何文本 我已经想出了这个解决方案 请告诉我这是否好或应该避免以及为什么 我对 Swing 和 Java 总体来说是新手 所以请耐心等待 publi
  • .gitattributes 中的“* text=auto eol=lf”和“* text eol=lf”有什么区别?

    这与这个问题非常相似 gitattributes 中的 text auto 和 text eol lf 有什么区别 https stackoverflow com questions 46590142 what is the differr
  • 合并(使用挤压)来自另一个分支的所有更改作为单个提交

    在 Git 中 有没有一种方法可以将一个分支的所有更改合并到另一个分支 但同时压缩为单个提交 我经常在单独的分支中开发新功能 并定期提交 推送 主要用于备份或将我正在开发的内容转移到另一台机器上 大多数这些提交都会说 Feature xxx
  • 如何更改datagridview中的行颜色

    我想更改 datagridview 中特定行的颜色 当列单元格 7 的值小于列单元格 10 的值时 该行应更改为红色 关于如何实现此目的有什么建议吗 您需要循环遍历 datagridview 中的行 然后比较每行上第 7 列和第 10 列的
  • Angular2 可观察定时器条件

    我有一个计时器 initiateTimer if this timerSub this destroyTimer let timer TimerObservable create 0 1000 this timerSub timer sub
  • 如何解决 WPF 中的“绑定表达式路径错误”?

    我将模型对象的可观察集合绑定到数据网格 但是当我将绑定设置到集合时 我收到了指向人员的路径错误 在调试此问题时 我检查了 CustomerModel 中的公共属性在 DataGrid 绑定中是否正确命名 而且返回到模型的集合不为空 我还检查
  • 为什么使用window.onload

    我尝试自己找到这个问题的答案 但只找到了有关如何使用 onload 事件的说明 我似乎没有抓住要点 我被告知 如果我希望在页面加载时发生某些事情 我应该像这样使用 window onload 但现在我自己思考 我想知道这样做的意义是什么 因