現象
在pdf分片加載的時候,會有bytes 大於默認大小65535。特別是pdf文件在13MB左右的時候,這種現象更加明顯。
如下圖:
上圖中,最後兩次請求體積明顯大於65535。
如果文件過小比如只有1MB,或者文件過大200MB,則這種問題很少見。
解決方案
經查看pdf.js的源碼,在pdf.js\src\display\fetch_stream.js 文件中227行左右進行修改。修改如圖:
添加代碼:
const diff = (end - 1) - begin;
const url = source.url;
if (diff > (source.rangeChunkSize|| 65535)) {
return false;
}
修改完成之後,按照pdf.js github官網 進行重新打包即可。
重新打包完成後,pdf.js\build\generic 文件夾中的兩個文件是打包的輸出。
添加代碼之後的效果
如圖:
問題解決!!!
疑問
其實,這個分片加載感覺像一個障眼法,沒有從根本上解決分片加載。因爲,每次加載pdf文件,需要等好久,但是http的請求時間卻很短。關於文件加載這塊,本人不是很熟悉,希望熟悉這塊的網友留言討論。