javascript - 当两个库尝试同时更改同一个 dom 元素时会发生什么

标签 javascript

假设我们有 2 个 JavaScript 脚本试图更改同一个 DOM 元素。 一个尝试将 html 输入到 div 中,另一个尝试将 div 移动到页面上的其他位置(用于 A/B 测试),我们无法预测它们何时完成加载并运行。 它会弄乱 html 页面吗?浏览器知道要防止这种情况吗?

最佳答案

你不能真正同时调用某些东西。 JavaScript 不是多线程的,你一次只能做一件事。

您的示例涉及 DOM,它与 JavaScript 引擎并不真正相关,而是与 DOM 引擎(多线程)相关。您可以在 DOM 中同时执行许多操作,但是,由于 JavaScript 是 DOM 的接口(interface),JavaScript 不会让您同时调用两个 DOM 相关函数 - 一个函数始终会在另一个函数之前被调用,即使它们同时发生在 DOM 内存空间(不是 JavaScript 的)内。

关于javascript - 当两个库尝试同时更改同一个 dom 元素时会发生什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4713716/

相关文章:

javascript - 在 flex 容器内时图像的高度会增加

javascript - ajax closest 在 ruby​​ on rails 中不受影响

javascript - 在 Vue 的 Axios 插件中全局定义基本 URL

javascript - ADMIN LTE 通知下拉菜单不包含内容

javascript - 导出模块并在导入时抛出错误/停止执行

javascript - 如何通过javascript使元素鼠标不可点击但可点击?

javascript - chrome.runtime.sendMessage 在 Chrome 扩展程序中不起作用

javascript - WebRTC 和 Websockets。有区别吗

javascript - 如何在 meteor 中生成生成的 html 页面的语义 URL?

javascript - 与 localforage 的链式 promise