pdf.js 分片加载问题

现象

在pdf分片加载的时候,会有bytes 大于默认大小65535。特别是pdf文件在13MB左右的时候,这种现象更加明显。

如下图:
pdf.js 分片加载问题_第1张图片
上图中,最后两次请求体积明显大于65535。

如果文件过小比如只有1MB,或者文件过大200MB,则这种问题很少见。

解决方案

经查看pdf.js的源码,在pdf.js\src\display\fetch_stream.js 文件中227行左右进行修改。修改如图:
pdf.js 分片加载问题_第2张图片
添加代码:

const diff = (end - 1) - begin;
const url = source.url;

if (diff > (source.rangeChunkSize|| 65535)) {
   return false;
}

修改完成之后,按照pdf.js github官网 进行重新打包即可。
重新打包完成后,pdf.js\build\generic 文件夹中的两个文件是打包的输出。

添加代码之后的效果

如图:
pdf.js 分片加载问题_第3张图片
问题解决!!!

疑问

其实,这个分片加载感觉像一个障眼法,没有从根本上解决分片加载。因为,每次加载pdf文件,需要等好久,但是http的请求时间却很短。关于文件加载这块,本人不是很熟悉,希望熟悉这块的网友留言讨论。

你可能感兴趣的:(pdf.js)