[发明专利]一种网页中的文件下载的方法和装置有效
申请号: | 201911358214.5 | 申请日: | 2019-12-25 |
公开(公告)号: | CN111245890B | 公开(公告)日: | 2022-08-02 |
发明(设计)人: | 吕益行;张丹丹;张晋锋;张永生;刘瑞贤;李斌 | 申请(专利权)人: | 曙光信息产业(北京)有限公司;中科曙光信息产业成都有限公司 |
主分类号: | H04L67/06 | 分类号: | H04L67/06 |
代理公司: | 北京德恒律治知识产权代理有限公司 11409 | 代理人: | 章社杲;卢军峰 |
地址: | 100193 北京*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 网页 中的 文件 下载 方法 装置 | ||
本发明提供了一种网页中的文件下载的方法和装置,该方法包括:注册事件驱动应用进程,事件驱动应用进程的作用域包括第一页面和第二页面;在第一页面发起文件下载请求,并向事件驱动应用进程发送请求下载文件消息;事件驱动应用进程收到消息后,向服务端发送文件下载请求;事件驱动应用进程收到服务端根据文件下载请求返回的文件流后,将文件流的类文件对象发送至第二页面;第二页面收到类文件对象后,执行文件下载。用户在点击文件下载之后,不需要强制保持此页面不关闭,可以随意跳转其它页面,待服务端生成文件并返回前端后,在新打开的页面上会自动执行文件下载。
技术领域
本发明涉及一种网页中的文件下载的方法和装置。
背景技术
网页中的文件下载一直都是网页中的基本功能,并且已经有了成熟的实现方式。但是在较差网络环境下或服务端需要耗时生成文件的情况下,页面中发出一个文件下载的请求之后,可能需要较长时间才能收到服务端的响应,而在次期间,用户需要保证文件下载页面的不关闭,否则请求将会取消从而不会执行文件下载,这就影响了用户浏览网页的体验。
为了优化用户使用网页中文件下载功能的体验,优化方式层出不穷。目前主要的手段是从缩短请求响应时间出发,在服务端进行生成文件的优化。服务端生成的文件需要从数据库导出数据,耗时的操作一般都发生在操作数据库层面,所以优化数据库结构,优化查询算法,都是常用的优化方法。另外通过把一个大文件拆分成多个小文件,页面进行多次下载,这减少了服务端处理单个下载文件的时间,缩短了单次请求的响应时间,这也是一种常用的优化手段。
互联网技术的快速发展使得浏览器中承载的功能越来越丰富,Service Worker就是其中之一。Service Worker是一个注册在指定源和路径下的事件驱动Worker,其可以对网页的资源请求进行拦截并修改,细粒度地缓存资源。虽然其不能对页面进行DOM操作,但是可以通过postMessage API与页面进行交互,间接操作页面。
Service Worker的出现,使得我们可以编写在浏览器后台运行的脚本,而此脚本的生命周期独立于页面,不会随页面的关闭而销毁,这就为我们在前端进行页面的优化提供了新的思路。如果用户在页面A执行文件下载的操作,我们把这个文件下载的请求放到Service Worker中,不论用户在A页面进行什么操作,即使是关闭了A页面,跳转到B页面,也不会取消这个文件下载的请求。根据这一思路,我们就有可能做到让用户在点击了文件下载之后,不必要一直待在此页面,从而优化用户使用体验。
在某些场景中,网页中需要下载的文件需要服务端在接收到请求之后,才去处理生成文件并返回到前端。如果服务端处理生成文件的过程比较耗时,则前端页面就需要等待较长时间,在等待服务端的响应期间,前端页面不能关闭,否则会取消掉请求,从而不会有下载文件的事件发生。发生这种情况的主要原因在于,页面的销毁会导致页面中资源请求的销毁。
发明内容
针对相关技术中存在的问题,本发明的目的在于提供一种网页中的文件下载的方法和装置,使得用户在点击文件下载之后,不需要强制保持此页面不关闭,可以随意跳转其它页面,待服务端生成文件并返回前端后,在新打开的页面上会自动执行文件下载。
根据本发明的实施例,网页中的文件下载的方法包括:注册事件驱动应用进程,事件驱动应用进程的作用域包括第一页面和第二页面;在第一页面发起文件下载请求,并向事件驱动应用进程发送请求下载文件消息;事件驱动应用进程收到消息后,向服务端发送文件下载请求;事件驱动应用进程收到服务端根据文件下载请求返回的文件流后,将文件流的类文件对象发送至第二页面;第二页面收到类文件对象后,执行文件下载。
根据本发明的实施例,通过PostMessage API向事件驱动应用进程发送对应于文件下载请求的消息。
根据本发明的实施例,通过Fetch API向服务端发送文件下载的请求。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于曙光信息产业(北京)有限公司;中科曙光信息产业成都有限公司,未经曙光信息产业(北京)有限公司;中科曙光信息产业成都有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201911358214.5/2.html,转载请声明来源钻瓜专利网。