【问题标题】:What is state management in jQuery?jQuery 中的状态管理是什么?
【发布时间】:2015-04-04 12:01:30
【问题描述】:
在jQuery UI Widget Factory:
jQuery UI Widget Factory 是一个可扩展的基础,所有的
jQuery UI 的小部件已构建。使用小部件工厂构建一个
插件为状态管理提供了便利,以及
常见任务的约定,例如公开插件方法和更改
实例化后的选项。
有人可以用简单的话解释一下(最好用一个例子),在这种情况下状态管理是什么意思?我知道的状态管理是浏览器历史记录state management(可能使用 HTML5 History API 或 history.js),但我看不出它与 jQuery UI Widget Factory 用途之间有任何关系。
感谢您的帮助。
【问题讨论】:
标签:
javascript
jquery
jquery-ui
browser-history
html5-history
【解决方案1】:
来自"Why Use the Widget Factory?" 部分文档:
无状态插件与有状态插件
大多数 jQuery 插件都是无状态的;他们执行了一些操作,他们的工作就完成了。例如,如果您使用.text( "hello" ) 设置元素的文本,则没有设置阶段并且结果始终相同。对于这些类型的插件,扩展 jQuery 的原型是有意义的。
但是,有些插件是有状态的;它们有完整的生命周期、维护状态并对变化做出反应。这些插件需要大量专门用于初始化和状态管理(有时甚至是销毁)的代码。这导致了许多用于构建有状态插件的样板。更糟糕的是,每个插件作者可能会以不同的方式管理生命周期和状态,从而导致不同插件的 API 样式不同。小部件工厂旨在解决这两个问题,删除样板文件并跨插件创建一致的 API。