gpt4 book ai didi

php - AJAX/PHP异步计算

转载 作者:行者123 更新时间:2023-11-29 19:58:01 24 4
gpt4 key购买 nike

我目前正在为我的项目规划成就系统。成就会在用户实际访问成就页面时解锁,未完成的成就会显示进度。

计算部分成就进度可能需要一些时间。我想到了这个想法,但我不知道如何去实现它,或者它是否可能:

  • JavaScript 通过 AJAX 请求成就数据
  • PHP 开始计算成就进度
  • 对于每个成就,都会将一行写入输出流,格式为 ID:progress
  • JavaScript 接收每一行并显示给定成就的进度

如何让 AJAX 在 responseText 到达时逐行读取,而不是在最后一次读取所有内容?


此外,如果可能的话,我希望 PHP 像这样线程化:

  • 对于每项成就:
    • 如果有超过N个“线程”,等待一个完成
    • fork 一个线程来计算当前的成就并回显结果行

在 PHP 中这样的事情可能吗?


或者我只是以完全错误的方式处理这件事?我应该只为每组成就发送一个 AJAX 请求吗?还是每个成就一个?作为替代方案,您有什么建议?

最佳答案

您可以在现代 ES5 浏览器中通过使用 XHR2 Progress Events 的组合来实现此目的在客户端和HTTP Chunked Transfer Encoding在服务器上 - this Stack Overflow post进入更多细节。

就我个人而言,我会说这种方法有点过度设计。如果第一次获取玩家成就需要不到几秒钟的时间(假设您将在给定时间段内为后续请求缓存它)那么我会让玩家在下载时等待并寻求优化一旦我有足够的用户来保证它:)

关于php - AJAX/PHP异步计算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15588433/

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