为了账号安全,请及时绑定邮箱和手机立即绑定

网页加载大小10M+的pdf,时间过长的问题

网页加载大小10M+的pdf,时间过长的问题

元芳怎么了 2019-03-20 19:15:51
加载流程是这样的,pdf文件在ftp服务器上,web服务器要先去ftp服务器下载pdf,然后在返回文件给浏览器,相当于要pdf要在网络中传输2次,就是下载2次了。导致的问题就是加载时间很长,要10多秒才能显示,很难忍受,请问大神们有没有这方面的经验和解决方案可以传授下,pdf基本上都是10多M的大小目前能想到的解决方案,是把pdf下载服务器上,转换成单页的jpg,先返回第一页的jpg,然后其他的转换任务还在线程中异步执行,这样应该可以将请求时间缩短一半。
查看完整描述

9 回答

?
九州编程

TA贡献1785条经验 获得超4个赞

之前遇到过类似的问题,,图片上传,一开始的思路是前端把图片上传到后台,再由后台上传到七牛云,后来感觉太影响速度,就直接用七牛的JS SDK,前端把直接把图上传到七牛,只把对应的文件名(key)发给后台,再将key存入数据库。
我觉得题主这个问题类似吧,,为什么不直接在页面上的PDF地址改成FTP服务器的地址呢??如有错误请批评指出,不才在这方面不了解

查看完整回答
反对 回复 2019-04-18
?
噜噜哒

TA贡献1784条经验 获得超7个赞

ftp协议可以直接访问下载的


查看完整回答
反对 回复 2019-04-18
?
慕容708150

TA贡献1831条经验 获得超4个赞

提供一个思路楼主参考
文件切割成多份,多线程下载,完成后在本地组合生成文件。
不过借用第三方,如七牛,这种已经优化的专业的平台应该更省事?
睡觉噜,晚安

查看完整回答
反对 回复 2019-04-18
?
MMTTMM

TA贡献1869条经验 获得超4个赞

我们的做法是在后端写个服务,先把上传的pdf文档,利用这个接口存储成多个svg文件,然后把这些svg文件提交到阿里云的oss或者是七牛的存储服务中,这个转换和存储的过程大概在半分钟左右,访问的时候,可以用懒加载方式,浏览效率和用户体验都非常不错。


查看完整回答
反对 回复 2019-04-18
?
慕尼黑5688855

TA贡献1848条经验 获得超2个赞

  1. 试试把pdf直接放到web机器,再访问web机器看速度提升了多少,ftp和web机器在一个内网吗?

  2. 将下载分发用云存储平台去,如cdn提供商、阿里云等

  3. 如果web机器访问速度可以,那可以使用rsync将ftp的同步到web机器来,如果项目小的话


查看完整回答
反对 回复 2019-04-18
?
跃然一笑

TA贡献1826条经验 获得超6个赞

新的pdf功能可以做成 类似异步请求的效果 本身文件很小具体需求会请求网络


查看完整回答
反对 回复 2019-04-18
?
莫回无

TA贡献1865条经验 获得超7个赞

为什么每次请求 都要重新连FTP下载?
建议第一次下载后把文件存在本地,
如果PDF会经常改动,那就在第二次下载之前判断一下文件大小和修改时间,
有改动再重新下载。

查看完整回答
反对 回复 2019-04-18
?
湖上湖

TA贡献2003条经验 获得超2个赞

实现代理机制,在服务器端将FTP的下载流重定向到浏览器的响应流中


查看完整回答
反对 回复 2019-04-18
  • 9 回答
  • 0 关注
  • 933 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号