gpt4 book ai didi

javascript - JavaScript 中的组件间通信

转载 作者:数据小太阳 更新时间:2023-10-29 06:08:54 27 4
gpt4 key购买 nike

我需要在 Web 应用程序中进行组件间通信,并且正在考虑实现此目的的不同方法。我有一些想法,但欢迎其他想法。

首先,一个快速简单的例子。我在异步加载的页面上有两个独立的组件。我所说的组件 是指具有与之关联的 JavaScript 对象的 HTML block ,该对象包括 html 中节点上的基于 jQuery 的行为。当用户与一个组件交互时,其他组件应该发生变化,反之亦然。

这里要记住的关键是每个组件都应该是一个独立的单元。它可以在应用程序的不同部分甚至不同的应用程序中重复使用。所以它不知道页面上其他组件的存在。

我目前对解决方案的想法包括让组件监听它们感兴趣的自定义事件,以及在发生操作时发送自定义事件。因此,每个组件都会监​​听另一个组件触发的事件。

问题在于,由于异步加载,一个组件的加载时间可能比另一个组件长。事件有可能发送得太快而丢失。在某些情况下,这可能没问题,但在某些情况下,我需要确保组件发送的所有事件都得到处理。

所以这里有一些相关的问题:

  1. 事件触发后会发生什么?如果在触发时没有听众,它会消失吗?

  2. 有没有办法检测触发事件是否被消耗或丢失?

  3. 有哪些好的方法可以让每个组件了解其他组件

  4. 是否有任何现有的开源 JavaScript 项目或 jQuery 插件可以处理这些类型的事情?

关于问题 #3,我认为每个组件都可以发送某种注册 事件,其中包括它监听的事件类型和它拥有的组件列表注册。组件将监听这些注册事件。某种使用计时器的注册逻辑将用于确保正确的组件在组件加载过程中一起注册。一旦注册完成,组件就可以发送它们的正常事件。

最佳答案

消息队列确实是您正在寻找的东西。我相信您可以设想各种方案,涉及监听自定义事件、接收消息、播放时间和顺序、节流、广播等的观察者对象。但在了解所有这些之前,请先看看这个 jQuery message queuing plug-in .可能是一个很好的起点。

关于javascript - JavaScript 中的组件间通信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3427174/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com