原型JavaScript Ajax FIFO队列

原型JavaScript Ajax FIFO队列,javascript,ajax,queue,prototypejs,Javascript,Ajax,Queue,Prototypejs,我正在编写一个小型的基于web的IM客户端,它工作得很好,但是我遇到了一些问题 该系统是用PHP和JavaScript编写的,它使用它放在每个页面上的身份验证ID,当发出ajax请求时,它必须包含此身份验证ID。这不是一个完美的系统,但我无法更改它 IM系统使用定期执行器(原型库),它会进行2次定期调用: 更新联系人列表,因为它不会经常更改,所以每隔30秒左右就会更新一次 检查是否有新消息,现在每5秒钟就会发生一次 问题是: 定期执行器调用更新联系人列表,使用身份验证id,PHP端接收该请求,检

我正在编写一个小型的基于web的IM客户端,它工作得很好,但是我遇到了一些问题

该系统是用PHP和JavaScript编写的,它使用它放在每个页面上的身份验证ID,当发出ajax请求时,它必须包含此身份验证ID。这不是一个完美的系统,但我无法更改它

IM系统使用定期执行器(原型库),它会进行2次定期调用:

  • 更新联系人列表,因为它不会经常更改,所以每隔30秒左右就会更新一次
  • 检查是否有新消息,现在每5秒钟就会发生一次
  • 问题是:

    定期执行器调用更新联系人列表,使用身份验证id,PHP端接收该请求,检查身份验证id,执行任务,返回JSON格式的新列表以及用于后续请求的新身份验证id

    如果在第一个函数返回之前检查新消息(定时)或发送消息(非定时),则身份验证id尚未更新。因此,它使用与前一个请求相同的身份验证id。该身份验证id被系统的PHP端拒绝


    我正在寻找一种将请求序列化为FIFO样式队列的方法,这意味着任何发出的ajax请求(检查消息、检查联系人、发送消息)都可以推送到队列中,并在上一个ajax调用完成后立即执行(100%完成并返回)

    创建一个请求队列类并使用它来处理ajax请求可能是一个好主意。我相信你可以通过谷歌搜索找到一些东西,但我发现有一个应该适合你:


    您必须替换所有ajax调用才能使用该新函数,但是修改这样的类应该可以解决您的问题。

    创建一个请求队列类并使用它来处理ajax请求可能是一个好主意。我相信你可以通过谷歌搜索找到一些东西,但我发现有一个应该适合你:

    要使用这个新函数,您必须替换所有ajax调用,但是修改这样的类应该可以解决您的问题