在我的 jQuery Web 应用程序中,我使用的事件非常多。
我对服务器执行 ajax 客户端请求(名称为“comm”)的组件有一个队列。
此队列类似于 Backbone.js 集合。
因此,每次我将一个新的请求对象放入“comm”的集合时,comm 对象都会收到一个“add”事件,并且“comm”的“worker”方法会查看当前是否有正在进行的请求。如果没有人,worker 方法会处理请求,最后,当一切正常时,会在请求对象上触发“完成”事件。
在此通信组件中,一次只能有一个请求。如果我将一个请求对象添加到“comm”并且“add”事件被触发并且工作方法看到已经有一个请求,那么什么都不会发生。
我的问题是:在这种情况下,对于“事件基础设施”,处理这个未处理的请求对象的最佳方法是什么?
到目前为止,我有两种不同的方法:
1)我可以做以下事情:如果我正在进行的请求完成了,worker方法可以检查集合中是否有未处理的请求对象并处理它。这很简单,不涉及任何事件。
2) 或者不同的东西:如果工作方法由于“添加”事件而启动并且看到已经有一个正在进行的请求,我可以实现类似:“我无法充分响应这个添加事件,我把你放回去.请在200毫秒后再次触发自己,也许我有时间。”
也许有人已经遇到过类似的问题并且对此有很好的解决方案?