javascript - 集合/数组中的事件

标签 javascript events

在我的 jQuery 网络应用程序中,我经常使用事件。
我对服务器执行 ajax 客户端请求(名称为“comm”)的组件有一个队列。
这个队列类似于 Backbone.js 集合。

因此,每次我将一个新的请求对象放入“comm”的集合中时,comm 对象都会收到一个“add”事件,并且“comm”的“worker”方法会查找当前是否有正在进行的请求。如果没有人,worker 方法处理请求,最后,当一切正常时,触发请求对象上的“完成”事件。

在这个通信组件中,一次只能有一个请求。如果我将一个请求对象添加到“comm”并且“添加”事件被触发并且工作方法看到已经有一个请求,那么什么也不会发生。

我的问题是:在这种情况下,处理与“事件基础结构”相关的未处理请求对象的最佳方法是什么?

到目前为止,我有两种不同的方法:

1) 我可以执行以下操作:如果我正在进行的请求已完成,worker 方法可以检查集合中是否有未处理的请求对象并对其进行处理。这很简单,不涉及任何事件。

2) 或者不同的东西:如果 worker 方法由于“添加”事件而启动并且看到,已经有一个正在进行的请求,我可以实现类似的东西:“我不能充分响应这个添加事件,我把你放回去。请在 200 毫秒后再次触发你自己,也许那时我有时间。”

也许有人已经遇到过类似的问题并且有很好的解决方案?

最佳答案

我认为解决这个问题的一个好方法是实现一个在队列中触发的“下一个”事件。每次触发“完成”事件时,它应该触发队列​​中的下一个事件,然后查看是否有任何未处理的请求,如果有,则根据您的逻辑选择一个(我假设 FIFO)

关于javascript - 集合/数组中的事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14748616/

相关文章:

javascript - 在 CSS 中重叠相对定位的图像

javascript - 从表格单元格的输入字段中获取事件 .focusout

java - 我不明白 consume() 做什么

Node.js 事件范围?

javascript - Socket.io 单个事件多次返回

javascript - $ ('option' ).mousedown 事件在少数情况下不起作用

javascript - 如何检查 URL 是否与当前页面和/或工作线程同源

mysql - Mysql 中仅在工作日运行的事件

PHP & MySQL : Check if table's data has changed without polling?

javascript - React-admin:使用文档中显示的自定义登录页面时出错