繁体   English   中英

qooxdoo活动最佳做法

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM