Web 浏览器中用于控制 DOM 事件之间交互的事件循环模型是由 Brendan Eich 与 JavaScript 同时开发的吗?

Posted

技术标签:

【中文标题】Web 浏览器中用于控制 DOM 事件之间交互的事件循环模型是由 Brendan Eich 与 JavaScript 同时开发的吗?【英文标题】:Was the event loop model used in web browsers to control interaction between DOM events concomitantly developed by Brendan Eich with JavaScript? 【发布时间】:2015-06-30 05:08:39 【问题描述】:

在 Web 浏览器中使用事件循环评估模型来控制 DOM 事件(以及后来的网络)之间的交互是由 Brendan Eich 使用 javascript 同时开发的吗?

或者它是在 JavaScript 之前还是之后?

编辑:我特别询问事件循环在浏览器中的位置。我知道事件循环是一项由来已久的发明。

【问题讨论】:

Java 的早期(Swing 之前)UI 架构是基于事件的。十多年前来自 Digital Research 的 GEM 也是如此。 Event loops 早于浏览器,但我不确定这是否是您的实际问题。你做过研究吗? 我投票决定将此问题作为题外话来结束,因为它实际上与解决甚至调查真实或假设的编程问题无关。 【参考方案1】:

事件循环早于 javascript.. 但只是一点点。

引入事件循环是为了支持 Netscape 中的图片progressive download。几乎立即它也被用于支持早期渲染,即在所有图像下载之前,DOM 元素显示在屏幕上。

当时,其他浏览器在下载图像时显示空白屏幕。最终效果是 Netscape 似乎更快,即使下载和呈现完整页面所需的时间相同。

一旦出现事件循环(最初是为了处理下载图像的网络代码),javascript 处理就被简单地添加到循环中。

【讨论】:

你有消息来源吗?我知道 Netscape Navigator 的渐进式下载功能,但不知道事件循环被用作底层实现。 暂时没有。谷歌可能会在某个时间点出现。这是我在 90 年代后期学到的东西,所以它可能来自 slashdot 或一些个人网站(尚未发明博客)甚至是纸质杂志(尚未发明博客)。 @BenAston:这是我目前能得到的最接近的参考。这是 Douglas Crockford 关于 DOM 的演讲,他描述了事件循环的演变:youtu.be/Fv9qT9joc0M?t=1841

以上是关于Web 浏览器中用于控制 DOM 事件之间交互的事件循环模型是由 Brendan Eich 与 JavaScript 同时开发的吗?的主要内容,如果未能解决你的问题,请参考以下文章

DOM事件

jQuery中的事件

事件入门

《JavaScript高级程序设计》Chapter 13 事件

JavaScript事件

JS中的事件传播流程