当前位置: 首页 > 面试题库 >

我可以防止/延迟更新模型时AngularJS $ digest的发生吗

巴宏恺
2023-03-14
问题内容

有没有办法推迟或延迟摘要的发生?

我想对模型进行一堆更改,但是在对模型进行所有更改之前,我不希望摘要触发。模型上的某些对象具有观察者,这些观察者可以更新模型上的其他对象以进行更改。

理想情况下,我想

  • 停止$ digest
  • 对模型进行所有更改
  • 开始$ digest

$ digest将发现所有脏物并解雇观察员。

另一个解决方案是,我可以停止$ digest,而不是停止

  • 删除观察者
  • 对模型进行所有更改(摘要仍在运行)
  • 添加已删除的观察者

添加观察者后,我需要运行观察者方法以确保模型处于正确的状态。

我只是觉得第二个选项似乎是一个hack。

想法??


问题答案:

这根本不是黑客。这是一个好问题,因为当用户快速输入文本或按住退格键时,大数据集可能导致$
digest循环运行得非常慢。您绝对可以对性能进行一些调整,例如,小心使用$watch$filter函数,但是有时$digest使用debounce函数来延迟周期是一个更好的主意。



 类似资料:
  • 在此之前,旧页面仍然会继续显示(例如,如果我正在浏览另一个页面,然后决定看到这个项目索引)。

  • 我在更新BigQuery模式时遇到了一些延迟问题。 我有一个表,它接收流式插入,并且架构在需要时会自动更新。问题在于,架构更新似乎在一段时间内不会生效,并且在该持续时间内进行的插入会删除新列的值。 我从2016年发现了这个答案,它说在更改生效之前可能会有长达5分钟的延迟。 这种情况仍然存在吗?您如何解决这一问题?如果答案是超时,那么在写入新列之前应该等待多长时间?

  • 我需要做的是,当抛出异常时,我需要将处理延迟一段可配置的时间,比如15分钟。这将给服务器一些时间来稳定,而不是不必要地保持轮询。我正在使用骆驼的errorHandler机制,但它似乎不起作用。Camle不停地收到请求,没有任何延迟。请帮助解决这个问题。下面是束上下文快照:

  • 问题内容: 我正在使用Spring事务,因此当POJO到DTO转换时,该事务仍然处于活动状态。 我想防止Dozer触发延迟加载,以使隐藏的sql查询永远不会发生:所有获取都必须通过HQL显式完成(以获得对性能的最佳控制)。 这是一个好习惯吗(我在任何地方都找不到它)? 如何安全地做? 我在DTO转换之前尝试了这个: 我不知道事务会发生什么,但是Hibernate会话不会关闭,并且仍然会发生延迟加载

  • 问题内容: 我用来渲染一个。我的控制器看起来像这样: 如您所见,我正在定期更新阵列。但是,我的观点是这样构造的: 问题是,当我更新时,它不会用新数据重新渲染我的表。 我将如何解决这个问题? 问题答案: 您是否将更新包入 ?这应该可以解决问题。

  • 主要内容:实例,实例,实例,实例关键词: 分布延迟, 集总延迟, 路径延迟 之前大部分仿真都是验证数字电路功能的正确性,信号传输都是理想的,没有延迟。但是实际逻辑元器件和它们之间的传输路径都会存在延迟。因此,必须检查设计中的延迟是否满足实际电路的时序约束要求。可以用时序仿真的方法来检查时序(timing),即在仿真时向元件或路径中加入和实际相符的延迟信息,并进行相关计算来确定时序是否满足。 静态时序分析 (Static Timi