更新 DOM 与在 Angular 中重新渲染视图

2023-11-23

我正在关注https://docs.angularjs.org/guide/scope.

5.$watch列表检测到name属性的变化并通知插值,进而更新 DOM。

6.Angular 退出执行上下文,进而退出 keydown 事件以及 JavaScript 执行上下文。

7.The 浏览器重新渲染视图与更新文本。

我很怀疑两者之间有什么区别更新 DOM5 号线和浏览器重新渲染视图7号线。 提前致谢。


DOM 表示浏览器中加载的 HTML 文档。 JavaScript 可以通过 DOM 操作文档,但这些操作不会立即生效,而是要在对 DOM 进行更改的 JavaScript 上下文完成后才生效。

这样想:

  • JS:嘿 HTML 文档,我要对你做一些更改。
  • HTML:好的,继续,联系你的 DOM 朋友并告诉他你想改变什么。
  • JS:好的,我正在处理...
  • JS:好的,我做了一些改变,但是,嘿,还有一些事情我需要改变。
  • HTML:好的,继续吧,我会等你完成所有事情。
  • JS:好的,一切都完成了
  • HTML:好的,我会询问 DOM 您更改了什么并应用它们。

考虑以下测试:

var a = document.body.children[0];

a.style.color = 'red'; 
for(var i = 0; i < 10000000000; i++) { }; 
a.style.color = 'blue';

尽管将颜色更改为红色的指令与将其更改为蓝色的指令之间有相当长的时间,但您永远不会看到颜色更改为红色,因为一旦 JS 完成,所有更改都会应用。

事实上,颜色确实会变成红色,但只持续很短的时间,然后才会变成蓝色,浏览器甚至没有时间绘制更改。或者即使有,你也不会注意到。

换句话说,DOM 操作由浏览器排队。一旦 JS 上下文完成,队列就会被执行。如果 JavaScript 在 2 个 DOM 更改之间花费时间执行其他任务,这将延迟队列执行的开始,然后所有排队的更改将连续执行。

根据上述信息,应该清楚更改 DOM 与更改 HTML 文档不同。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

更新 DOM 与在 Angular 中重新渲染视图 的相关文章

随机推荐

  • 为什么我的工具箱项目在 Visual Studio 2008 中消失?

    我正在开发一个解决方案 其中包含多个针对 Windows Mobile 5 和标准 Windows 应用程序的项目 最近 在设计器中打开表单时 常见的 UI 控件 文本框 按钮 标签等 已经消失 只留下项目中定义的控件 重置工具箱没有任何效
  • 递归地从 JSON 结构中删除 null

    我经常发现需要缓存由以下内容创建的数据结构NSJSONSerialization到磁盘并作为 writeToFile如果有空值就会失败 我需要一个在结构未知时有效的修复程序 这是可行的 并且允许直接突变 因为 NSMutableDictio
  • 在 Windows Phone 上设置 ListView 的 GroupStyle.Panel

    我正在尝试创建一个ListView分组 其中每个组中的元素水平显示 作为可滚动内容 无论我尝试什么GroupStyle Panel of the ListView它似乎对列表没有任何影响 我的 XAML 如下所示
  • Azure Devops:即使设置 NPM 身份验证后也无法使用 NPM 私有注册表构建映像

    设置 NPM Authenticate 后 我总是在 npm install 上收到错误 我想在映像构建期间对我的 npm 私有注册表进行身份验证并安装我需要的所有依赖项 也许我误解了这个身份验证过程的工作原理 但这就是我正在做的 建设管道
  • 是否可以进行不返回的 AJAX 调用?

    是否可以发送 jQuery ajax 调用或等效调用而无需任何响应 我想在使用 onbeforeunload 命令离开页面时触发服务器上的某些内容 但这不是我需要反馈给客户端的内容 因此我只想发送命令而不等待响应 那可能吗 每个请求都有一个
  • 在Maven中通过Ant FTP任务上传文件

    我正在尝试使用 Ant 任务上传文件 如果我直接使用 Ant 文件就会上传 但是如果我通过 Maven 调用 ant 任务 使用maven antrun plugin 我收到以下错误 发生 Ant BuildException 执行此行时发
  • node console.log() 一行输出数组

    我使用节点v10 6 0 这是我的代码 console log a 1 b 2 a 1 b 2 a 1 b 2 console log a 1 b 2 a 1 b 2 a 1 b 2 a 1 b 2 a 1 b 2 a 1 b 2 a 1
  • 如何设计存储多种语言文本的数据库模式?

    我们有一个 PostgreSQL 数据库 我们有几个表需要以多种语言保存某些数据 幸运的是 可能的语言列表是在系统范围内定义的 例如 让我们从以下开始 create table blah id serial foo text bar tex
  • 如何使用 Azure PowerShell 读取和设置 DevOps Pipeline 变量?

    我有一个 Azure Pipeline 设置 其中定义了 MyVariable 变量 如何编写 Azure PowerShell 内联脚本来读取变量 并在处理后将其设置为值 Reading 变量作为环境变量公开 要读取变量 TestVar
  • MongoDB - 为什么我应该使用游标而不是 iterator_to_array (在 PHP 中)

    mongo 类的 PHP 文档说使用光标代替iterator to array是优越的 为什么 我将从中获得什么好处 灵活性 Using iterator to array 使您的驱动程序立即将所有结果加载到内存中 并且您很容易耗尽内存 对
  • 如何在 google 地图 api v3 地图中为鼠标光标设置自定义图像?

    我希望将鼠标悬停在页面上的 Google 地图组件上时有一个自定义光标 我希望能够以编程方式将光标更改为自定义图像 然后将其更改回默认光标 我相信这就是您在 地图 对象上设置默认光标的方式 map setOptions draggableC
  • FireFox 上的视频方向不正确

    我有视频的 html5 视频标签 在 chrome 上一切都很好 在 firefox 上横向视频的方向是错误的 即使尝试使用 video js 也没有改变 我读到这是一个问题 因为视频源自 iOS 所以有2个问题 1 我怎样才能克服这个问题
  • 舍邦线不工作

    不知道我的 shebang 线有什么问题 vic ubuntu Desktop test py No such file or directory vic ubuntu Desktop ls l rwxr xr x 1 vic vic 35
  • 将 Date 对象转换为 TimeWithZone

    我需要将 Date 对象转换为 TimeWithZone 对象 表示给定时区当天的开始时间 以下方法有效 但似乎太复杂 因为它需要我将日期转换为字符串 gt date Date parse 2010 02 17 gt Wed 17 Feb
  • 将右键菜单添加到 SWT 树中的树项

    如何向 SWT 树中的树项添加右键单击弹出菜单 每个树项都应该启用右键单击 只需使用tree setMenu Menu 就这样 public static void main String args Display display Disp
  • 从 TFS 2010 迁移到 TFS 2012

    我一直在网上搜索关于如何将 2010 年 tfs 集合迁移到新的 tfs 2012 服务器的干净解决方案 但没有成功 请有人协助我完成这些步骤或一个好的博客来实现这个过程 我们想要进行迁移而不是升级的原因是因为我们获得了新硬件 并且希望在升
  • 线程安全的均匀随机数生成器

    我有一些并行的 Fortran90 代码 其中每个线程都需要生成相同的随机数序列 我有一个随机数生成器 它似乎是线程不安全的 因为对于给定的种子 我完全无法在每次运行程序时重复相同的结果 我 几乎 浏览了整个网络 寻找一些线程安全 RNG
  • 带 svg 的 JavaFX 按钮

    我有这个 SVG M421 985 229 833L217 847 25 981c 7 235 7 238 16 94 13 374 29 121 18 416C176 541 2 522 165 407 0 155 318 0H36 54
  • 有没有办法摆脱 ASP.NET Web 部署项目中的 aspx 占位符文件?

    我正在使用一个网络部署项目为了预编译我的ASP NET 3 5 网络项目 它为 aspx 和 ascx 文件中的代码创建一个额外的 DLL 并且 对于每个 aspx 文件 都有一个占位符 aspx 文件 空 需要将其复制到服务器 我想简化部
  • 更新 DOM 与在 Angular 中重新渲染视图

    我正在关注https docs angularjs org guide scope 5 watch列表检测到name属性的变化并通知插值 进而更新 DOM 6 Angular 退出执行上下文 进而退出 keydown 事件以及 JavaSc