我目前正在为我的项目计划一个成就系统。当用户实际访问“成就”页面时,成就将被解锁,任何未完成的都会显示其进度。
计算某些成就的进度可能需要一些时间。我想出了这个想法,但我不知道如何去实现它,或者它是否可能:
- JavaScript 通过 AJAX 请求成就数据
- PHP开始计算成就进度
- 对于每个成就,将一行写入输出流,形式为
ID:progress
- JavaScript 接收每一行并显示给定成就的进度
我将如何让 AJAX 在responseText
到达时逐行读取它,而不是在最后一次全部读取?
此外,如果可能的话,我希望 PHP 像这样被线程化:
- 对于每项成就:
- 如果有超过 N 个“线程”,则等待一个完成
- 分叉一个线程来计算当前的成就并回显结果行
在 PHP 中这样的事情是可能的吗?
或者我只是以完全错误的方式去做这件事?我应该为每组成就发送一个 AJAX 请求吗?还是每个成就一个?你会建议什么作为替代方案?