网络浏览器到什么时候才完全取消阻止交互式事件?

问题描述 投票:2回答:2

readystatechange事件的状态为[[已命名“交互式”,这听起来像浏览器事先是阻止交互式事件。那是标准化的吗?详细信息是什么?

我的意思是,如果浏览器不会推迟/推迟或阻止这些事件,那么除非Javascript与HTML混合使用(onclick之类的属性或Javascript生成整个元素本身)。

示例:加载巨大页面的浏览器可能已经使DOM的一部分对用户可见(当然,可能会发生更改),甚至没有完成HTML的下载。如果用户单击某些东西怎么办?该事件将被忽略,现在交付还是稍后执行?我希望它能在取消阻塞时(而不是单击时)生成并路由事件对象,并在以后交付。—也可以忽略。

javascript html cross-browser dom-events html-rendering
2个回答
1
投票
听起来好像浏览器是预先

阻止交互事件

不,听起来不是这样,

interactive

在这里仅表示我们可以安全地与Document交互:其标记已被完全解析并且其DOM已完全准备就绪,现在可以进行交互。没有与UI事件的任何链接,用户代理可以在不处理任何UI事件的情况下实现那部分规范(请考虑无头浏览器)。>>

Document is even created之前,其browserContext已设置为agent,并且其event-loop正在运行。因此,即使在创建文档之前,事件循环也可以接收UI事件,

尽管我不认为文档之外可以从中分发任何东西

关于何时分派这些事件,我认为这里存在一些互操作问题,但是从理论上讲,HTML解析应该是同步的,而这些事件应该异步地分派。

对UI事件不太确定,但是至少一些网络事件,例如load

是在Webkit浏览器中进行完整解析多年之前同步调度的,

0
投票

事件一开始是否被阻止? [>。]页面即使在加载主页面时也具有“交互性”,因此我确实认为interactive readyState确实是误称。事件将“照常”触发,并且如果处理程序花费过多时间(也照常),事件可能会堆积。

© www.soinside.com 2019 - 2024. All rights reserved.