gpt4 book ai didi

javascript - JavaScript Ajax FIFO 队列原型(prototype)

转载 作者:行者123 更新时间:2023-11-28 02:48:01 27 4
gpt4 key购买 nike

我正在编写一个基于网络的小型 IM 客户端,它运行良好,但我遇到了一些问题。

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

IM系统使用周期性执行器(Prototype库),它进行了2个周期性调用:

  1. 更新联系人列表,因为该列表不会经常更改,因此大约每 30 秒更新一次
  2. 检查新消息,现在每 5 秒就会发生一次。

问题是:

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

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

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

最佳答案

创建一个请求队列类并使用它来处理 ajax 请求可能是个好主意。我确信您可以通过谷歌搜索找到已经制作的东西,但我发现这里应该适合您:

http://positionabsolute.net/blog/2007/04/ajax-request-queue.php

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

关于javascript - JavaScript Ajax FIFO 队列原型(prototype),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4457141/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com