素材牛VIP会员
网页加载大小10M+的pdf,时间过长的问题
 wt***00  分类:Java代码  人气:1715  回帖:11  发布于6年前 收藏

加载流程是这样的,pdf文件在ftp服务器上,web服务器要先去ftp服务器下载pdf,然后在返回文件给浏览器,相当于要pdf要在网络中传输2次,就是下载2次了。

导致的问题就是加载时间很长,要10多秒才能显示,很难忍受,

请问大神们有没有这方面的经验和解决方案可以传授下,pdf基本上都是10多M的大小

目前能想到的解决方案,是把pdf下载服务器上,转换成单页的jpg,先返回第一页的jpg,然后其他的转换任务还在线程中异步执行,这样应该可以将请求时间缩短一半。

讨论这个帖子(11)垃圾回帖将一律封号处理……

Lv4 码徒
sy***88 软件测试工程师 6年前#1

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

Lv6 码匠
so***t0 CEO 6年前#2

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

Lv6 码匠
轰***o 软件测试工程师 6年前#3

我感觉不是ftp服务器的问题,内部网络一般都是非常快的,很少成为瓶颈

你可以试试,在你的web服务器上放一个pdf,然后直接访问这个pdf看看速度如何

Lv6 码匠
这***生 技术总监 6年前#4

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

Lv4 码徒
gy***23 JAVA开发工程师 6年前#5
  1. 试试把pdf直接放到web机器,再访问web机器看速度提升了多少,ftp和web机器在一个内网吗?

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

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

Lv6 码匠
zx***30 其它 6年前#6

用户体验:做个加载进度条
网络优化:上面很多都说了,CDN加速(机密文件不适合)
文件优化: pdf做成可单页加载的,不好处理可尝试分割成多个图片

这种问题,一般1,2两不就够了

Lv6 码匠
yj***23 站长 6年前#7

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

Lv6 码匠
谎***y 技术总监 6年前#8

我的解决方案是tornado+requests流传输
http://www.zwy.win/?p=132

Lv5 码农
阿***d 交互设计师 6年前#9

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

Lv6 码匠
gu***yu 软件测试工程师 6年前#10

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

上一页12下一页
 文明上网,理性发言!   😉 阿里云幸运券,戳我领取