【发布时间】:2018-06-21 20:05:28
【问题描述】:
我正在学习 zone.js 如何给 browseraAPI 打猴子补丁(基本上是异步任务),并使用 fork 挂钩来通知活动何时开始和结束。
setTimeOut 是 browserAPI 而不是 javascript 的东西,所以 Zone 可以修补它,但是 onclick、onkeydown....... 事件呢?据我了解,区域仅修补浏览器 API,然后当我单击按钮或按下按键或任何用户交互时如何触发更改检测?
或者我的理解是错误的。区域可以修补任何事件吗?
【问题讨论】:
-
DOM(及其关联的事件模型)不是 JavaScript 的一部分(也不是 JavaScript 的唯一)。一般来说,在 JS 领域,你几乎可以覆盖 任何东西。
-
我还有一个困惑。我知道调整大小、滚动和动画是浏览器事件,但你将如何分类 onclick、keydown、........用户事件或什么?还有,这个 onclick , keydown .. 这些是浏览器 API 还是 Javascript API?而且我知道 setTimeout 是浏览器 API,但我们用 javascript 编写它。事情在幕后是如何运作的。那么javascript如何与浏览器暴露的API交互呢?这里的wrapper Object是什么?
-
查看my answer here,这可能会消除您的很多困惑。简短的回答是:没关系,除非您想编写自己的网络浏览器,否则您可能不需要关心差异。
标签: javascript angular zone.js angular-changedetection