qooxdoo 活动最佳实践
qooxdoo events best practices
在我的应用程序中,我 loading/saving 一些数据 from/to qx.io.rest.Resource
。为了隐藏 REST 的复杂性,我想向应用程序组件公开一个简化的高级接口;考虑 load()/save() 方法和一些事件来监控操作进度。
在这个场景中,一共有六个事件:[加载,保存] x [开始,成功,失败]。 (我对监控传输的数据量不感兴趣,因为典型的请求不会超过 1KB。)
best/preferred 对此事件方案建模的方法是什么?我是使用单一事件类型并将所有信息打包到事件数据中,还是使用不同的事件类型?我应该延长 qx.event.type.Event
, or should I adopt an existing class like qx.event.type.Data
吗?
这在很大程度上取决于您的事件的自然使用模式;例如,如果任何想要了解进度的代码通常需要订阅所有三个 [starting, success, failure ] 那么添加 "progress" 类型 qx.event.type.Data 事件会更合适,并且数据将包含更细粒度的信息。
这是 Qooxdoo 中的常见模式 - 例如,查看 qx.data.Array 并且它是 "change" 事件。事件的数据包括变化是什么的信息,但是监听的事件只有一个。
"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",
},
这些对应于使用请求方法 GET、PUT、DELETE 和 qx.io.rest.Resource 的 REST 路径加载、保存和删除。
加载、保存和删除事件在启动时触发,而 methodSuccess、methodError 在传输成功或错误时触发。
方法 load、save、del 被实现以启动这些操作,发送一个对象 ID 一个 sessionid 和一些有效负载作为 JSON。
在我的应用程序中,我 loading/saving 一些数据 from/to qx.io.rest.Resource
。为了隐藏 REST 的复杂性,我想向应用程序组件公开一个简化的高级接口;考虑 load()/save() 方法和一些事件来监控操作进度。
在这个场景中,一共有六个事件:[加载,保存] x [开始,成功,失败]。 (我对监控传输的数据量不感兴趣,因为典型的请求不会超过 1KB。)
best/preferred 对此事件方案建模的方法是什么?我是使用单一事件类型并将所有信息打包到事件数据中,还是使用不同的事件类型?我应该延长 qx.event.type.Event
, or should I adopt an existing class like qx.event.type.Data
吗?
这在很大程度上取决于您的事件的自然使用模式;例如,如果任何想要了解进度的代码通常需要订阅所有三个 [starting, success, failure ] 那么添加 "progress" 类型 qx.event.type.Data 事件会更合适,并且数据将包含更细粒度的信息。
这是 Qooxdoo 中的常见模式 - 例如,查看 qx.data.Array 并且它是 "change" 事件。事件的数据包括变化是什么的信息,但是监听的事件只有一个。
"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",
},
这些对应于使用请求方法 GET、PUT、DELETE 和 qx.io.rest.Resource 的 REST 路径加载、保存和删除。
加载、保存和删除事件在启动时触发,而 methodSuccess、methodError 在传输成功或错误时触发。
方法 load、save、del 被实现以启动这些操作,发送一个对象 ID 一个 sessionid 和一些有效负载作为 JSON。