Skip to content

大尺寸PDF文件加载优化

前因

几百MB的PDF在浏览器上显示很慢,而且我们文件还不是放在CDN上的,是后端返回的文件流,这更慢了,且不能缓存。 ​

解决方案

后端拆分后,前端按页数去请求,前端加载完第一页后,遍历异步加载后面的页。

因为我们一个课程可以有多个课件,这种方法会导致请求一股脑发出去,然后大多数请求处于 pending状态,如果这时候切换其它课件,那么新的请求就会排在那些pending请求的后面。 ​

解决

写一个栈,保存请求的参数,先进先出,定时执行(试过用await,会把整个程序搞死,影响了框架),切换课件就把栈清空,然后写入新的请求的参数。