我目前正在为我的项目计划一个成就系统。当用户实际访问“成就”页面时,成就将被解锁,任何未完成的成就将显示其进度。
计算一些成就的进展可能需要一些时间。我提出了这个想法,但我不知道如何实现它,或者甚至可能:
ID:progress
我如何让AJAX在到达时逐行读取responseText
,而不是在结束时一次读取所有内容?
此外,如果可能的话,我希望PHP能够像这样进行线程化:
在PHP中这样的事情可能吗?
或者我只是以完全错误的方式解决这个问题?我应该为每组成就发送一个AJAX请求吗?或者每个成就一个?你会建议什么作为替代方案?
答案 0 :(得分:3)
您可以在现代ES5浏览器中使用客户端上的XHR2 Progress Events和服务器上的HTTP Chunked Transfer Encoding组合实现此功能 - this Stack Overflow post详细介绍。
就个人而言,我会说这种方法有点过度设计。如果第一次获取玩家成就需要不到几秒钟(假设您将在给定时间段内为后续请求缓存它),那么我只是让玩家在下载时等待,并期待优化这个一旦我有足够的用户保证:)