websocket 用于操作虚拟DOM并将更改同步到浏览器的NodeJS框架

gwo2fgha  于 2023-06-23  发布在  其他
关注(0)|答案(1)|浏览(120)

我正在开发一个nodejs应用程序,我感兴趣的是在服务器端操作DOM的虚拟表示,然后将这些更改真实的同步到连接的浏览器。
我知道像jsdom这样的库可以在nodejs中操作虚拟DOM,我知道websockets可以用于服务器/客户端之间的实时通信,但我正在寻找一个更集成的解决方案。
具体来说,我希望在我的nodejs控制台应用程序中操作DOM的虚拟表示,类似于在浏览器中使用document.getElementById、.appendChild等操作实际DOM的方式。我正在考虑跟踪这些DOM操作或更改,并使用WebSockets之类的东西将这些跟踪的更改真实的发送到连接的浏览器。客户端可能会侦听这些更改,然后将它们应用于实际的DOM
是否有一个nodejs框架或库提供这些功能,或者可以一起使用的框架/库组合来实现这一点?我最感兴趣的是使用它进行本地调试/作为localhost Jmeter 板

68bkxrlz

68bkxrlz1#

JSDOM支持MutationObserver,您可以使用它来监视DOM更改并通过WebSocket发送mutation:

// Callback function to execute when mutations are observed
const callback = (mutationList, observer) => {
  for (const mutation of mutationList) {
    if (mutation.type === "childList") {
      console.log("A child node has been added or removed.");
    } else if (mutation.type === "attributes") {
      console.log(`The ${mutation.attributeName} attribute was modified.`);
    }
  }
};

https://developer.mozilla.org/en-US/docs/Web/API/MutationObserver

相关问题