[英]qooxdoo events best practices
在我的应用程序中,我正在/从qx.io.rest.Resource
加载/保存一些数据。 为了隐藏REST的复杂性,我想向应用程序组件公开一个简化的高级接口。 考虑一下load()/ save()方法和一些事件来监视操作进度。
在这种情况下,总共有六个事件:[加载,保存] x [启动,成功,失败]。 (我不希望监视传输的数据量,因为典型的请求将少于1KB。)
对此事件方案进行建模的最佳/首选方式是什么? 是使用单一事件类型并将所有信息打包到事件数据中,还是使用其他事件类型? 我应该扩展qx.event.type.Event
还是应该采用现有的类qx.event.type.Data
?
这在很大程度上取决于事件的自然使用方式。 例如,如果任何想要了解进度的代码通常都需要预订[starting,success,failure]的全部三个,则添加qx.event.type.Data类型的“ progress”事件更为合适,并且数据将包含更精细的信息。
这是Qooxdoo中的常见模式-例如,查看qx.data.Array及其“更改”事件。 事件的数据包括有关更改内容的信息,但是只有一个事件可以收听。
“ load”和“ save”是完全不同的事件,所以也许您最终会遇到“ load”,“ save”和“ progress”
我正在使用mixin mylib.io.MREST,其中定义了以下事件:
events:
{
"load" : "qx.event.type.Event",
"loadSuccess" : "qx.event.type.Data",
"loadError" : "qx.event.type.Data",
"save" : "qx.event.type.Event",
"saveSuccess" : "qx.event.type.Data",
"saveError" : "qx.event.type.Data",
"del" : "qx.event.type.Data",
"delSuccess" : "qx.event.type.Event",
"delError" : "qx.event.type.Event",
},
这些对应于REST路径,使用带有qx.io.rest.Resource的请求方法GET,PUT,DELETE进行加载,保存和删除。
事件load,save和del在启动时触发,而methodSuccess,methodError则触发,传输成功或出错。
实现了load,save和del方法来启动这些操作,向对象id发送一个sessionid以及一些有效载荷作为JSON。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.