是否有管理事件的“量子状态变化”的有用模式?(特别是在JavaScript中)
Is there a useful pattern for managing "quantum state changes" for events? (specfically in JavaScript)
有各种各样的方法可以单独响应事件。但是,我反复遇到这样的现象,我想更改多个属性,然后在进行所有更改后响应状态。
经典案例 - 我有一个包含帐户事务的数据网格。当我从一个帐户更改为另一个帐户时,我还会更改日期范围和排序键/顺序。这是三个属性(accountID,排序,dateRange),但我不想独立触发三个更改事件 - 至少,当我切换帐户时不会。但是,这些状态确实具有基础观察程序,因为当最后两个状态更改时,来自用户交互。
有没有任何智能方法来管理参数的量子变化,与参数的单个变化分开?您始终可以使用全局 state_is_changing 属性来在逐个更改事件时中和事件,但是当您"取消挂钩"state_is_changing属性时,您必须从更高级别重新轮询您的状态,或者让事件效果"排队"在更改期间触发。
这些解决方案似乎都不优雅。
有谁知道一种设计模式,您可以在其中优雅地管理事件系统中的战术和量子状态更改?
你已经用观察者模式标记了这个,但听起来你想要的是中介模式......它侦听各种来源并提供更高级别的逻辑。
读一读,看看它是否适合你的想法:http://addyosmani.com/largescalejavascript/#mediatorpattern
相关文章:
- 如何将chrome扩展功能移植到移动设备(特别是jquery和trello)
- 从网站(特别是Trello.com)获取JSON文件
- 使javascript警报/确认对话框更加可见(特别是在Google Chrome浏览器中)
- 特别是将javascript添加到类中,而不是添加到另一个类中
- Piwik自定义插件开发/JQPlot(特别是:Piwik 1.7.1中的seriesPicker)
- 多文件上传,支持所有浏览器,特别是ie7,ie8和ie9
- 如何从浏览器中删除Skype呼叫工具?特别是Chrome
- 编译用于调试的私有api——特别是_enableRemoteInspector
- 如何模拟AngularJS中的构造函数(特别是Date()构造函数)
- 究竟如何getElementsByClassName工作在Chrome?,特别是w.r.t. NodeLists &;延
- 如何轻松运行本地内容(javascript, Flash),特别是在IE11中
- 如何抑制退格时,日期字段日历是活跃的extjs 4,特别是在IE中
- 在包含相对".js"后缀的npm包中使用aurelia-cli需要导入(特别是autobahn)
- Node.js有哪些调试选项?特别是在Visual Studio Code中
- HTML5视频显示时间在Javascript -特别是秒
- AJAX构建和部署环境,特别是javascript和css min,完整版本
- 如何从HTML表中提取数据,特别是<td id=“;单词“>,使用JavaScript
- 将String转换为方法参数,特别是在console.log中
- Vue.js:从DOM中拉入数据——特别是form action属性
- 是否有管理事件的“量子状态变化”的有用模式?(特别是在JavaScript中)