一种Web系统中文件下载的方法技术方案

技术编号:21167298 阅读:36 留言:0更新日期:2019-05-22 09:42
本发明专利技术公开了一种Web系统中文件下载的方法,属于互联网技术领域。解决了在不改变服务器端和客户端约定超时时间的情况下,因文件太大,服务器端准备时间较长导致超时的问题。步骤一:客户端发送请求Q1,服务器端接收到请求后根据客户端请求Q1的参数,返回相应的图片数量、表格条数或其他能评估出文件大小的数据总量N,同时服务器开始生成下载文件W;步骤二:客户端根据服务器端返回的数据总量N来计算请求时间间隔t来发送请求Q2询问服务器端是否生成好下载文件W;若服务器端数据已经生成好了下载文件W,立即执行步骤三;反之,则等待时间间隔t再发出询问服务器端是否打包好数据的请求Q3;步骤三:根据返回的W的地址下载文件。

A Method of File Downloading in Web System

The invention discloses a method for downloading files in a Web system, which belongs to the field of Internet technology. It solves the problem of timeout caused by too large files and too long server preparation time without changing the agreed timeout time between server and client. Step 1: The client sends the request Q1. After receiving the request, the server returns the corresponding number of pictures, tables or other total data N which can evaluate the file size according to the parameters of the client's request Q1. At the same time, the server starts to generate the download file W. Step 2: The client calculates the request time interval t to send the request Q2 inquiry according to the total data N returned by the server. Ask the server whether the download file W is generated well; if the server-side data has generated the download file W, execute step 3 immediately; otherwise, wait for time interval t to issue a request Q3 to ask the server whether the data is packaged properly; step 3: download the file according to the address of the returned W.

【技术实现步骤摘要】
一种Web系统中文件下载的方法
本专利技术涉及互联网
,具体属于Web平台开发技术的前端和后端领域,涉及一种Web系统中文件下载的方法。
技术介绍
随着网络普及和发展,Web应用功能丰富化,用户请求服务器端文件也越来越常见。涉及到数据管理、图片管理的Web平台管理系统几乎都会有下载文件的需求。现有的Web文件下载技术中有一种常用下载方法是用户发起请求后,后端将用户请求的文件生成好或者打包好放在某个用户可以访问的地址,并向用户提供下载链接,用户拿到链接即可下载文件和压缩包。所有的操作都是在一次请求中来完成,然而当文件比较大的时候,后端准备压缩包和文件的时间比较久,会导致用户的请求超时,从而下载失败。如用户请求表格数据达到万条数据以上、高清图片文件超过100张等这些应用场景在Web应用中比较常见的。而这些情况采用常用的技术方案,就会出现请求超时问题。
技术实现思路
为了解决在不改变服务器端和客户端约定超时时间的情况下,web系统中,因文件太大,服务器端准备时间较长导致超时的问题,本专利技术提供一种Web系统中文件下载的方法。为了实现上述目的,本专利技术采用以下技术方案:一种Web系统中文件下载的方法,包括以下步骤:步骤一:客户端发送请求Q1,服务器端接收到请求后根据客户端请求Q1的参数,返回相应的图片数量、表格条数或其他能评估出文件大小的数据总量N,同时服务器开始生成下载文件W;步骤二:客户端根据服务器端返回的数据总量N来计算请求时间间隔t,根据请求时间间隔t来发送请求Q2询问服务器端是否生成好下载文件W;若服务器端数据已经生成好了下载文件W,立即执行步骤三;反之,若请求结果是服务器端还没有生成好下载文件W,则等待时间间隔t再发出询问服务器端是否打包好数据的请求Q3,如此循环步骤二直到进入步骤三;步骤三:根据返回的W的地址下载文件。具体的,所述步骤一中,Q1请求中无需等待W准备好后才返回结果,只要将数据总量N返回给客户端。具体的,所述步骤二中,时间间隔t是根据请求Q1返回来的数据计算出来的值。具体的,所述时间间隔t的计算方法如下:时间间隔:t=N*m/t′;其中N为数据总量,m是每条数据平均大小,t′是生成一条数据所需要的平均时间。本专利技术与现有技术相比具有的有益效果是:1、本专利技术与传统方法的区别在于步骤一的不同,以及多了步骤二。传统方法在步骤一中就要求服务器返回W文件的地址,这样W过大的时候会请求超时。现在的设计步骤一中请求不要求返回W的地址,Q1请求中无需等待W准备好后才返回结果,只要返回N给客户端即可,这样可以避免因服务器准备W时间过长而导致Q1请求超时。同时多了步骤二,客户端等待t时间发送请求询问服务器W是否准备好。若服务器端数据已经生成好了下载文件W,立即执行步骤三;反之,若请求结果是服务器端还没有生成好下载文件W,则等待时间间隔t再发出询问服务器端是否打包好数据的请求Q3,如此循环步骤二直到进入第三步即根据返回的W的地址下载文件。本专利技术对Web系统现有文件下载方法行了优化,解决了文件过大情况下文件下载请求超时的问题。附图说明图1是本专利技术的一种Web系统中文件下载的方法的客户端与服务器端的交互示意图。具体实施方式下面结合实施例对本专利技术作进一步的描述,所描述的实施例仅仅是本专利技术一部分实施例,并不是全部的实施例。基于本专利技术中的实施例,本领域的普通技术人员在没有做出创造性劳动前提下所获得的其他所用实施例,都属于本专利技术的保护范围。实施例1:由于用户请求的文件过大,服务器端准备文件的时间需超过了服务器端和客户端约定超时时间,客户端判断请求超时,然后断开请求连接,下载失败。针对这个问题,本专利技术提出的解决方案是:数据量较大时候,将下载请求由原来的2步改进为3步:一种Web系统中文件下载的方法,包括以下步骤:如图1所示:步骤一:客户端发送请求Q1,服务器端接收到请求后根据客户端请求Q1的参数,返回相应的图片数量、表格条数或其他能评估出文件大小的数据总量N,同时服务器开始生成下载文件W;Q1请求中无需等待W准备好后才返回结果,只要返回N给客户端即可,这样可以避免因服务器准备W时间过长而导致Q1请求超时。步骤二:客户端根据服务器端返回的数据总量N来计算请求时间间隔t,根据请求时间间隔t来发送请求Q2询问服务器端是否生成好下载文件W;若服务器端数据已经生成好了下载文件W,立即执行步骤三;反之,若请求结果是服务器端还没有生成好下载文件W,则等待时间间隔t再发出询问服务器端是否打包好数据的请求Q3,如此循环步骤二直到进入步骤三;步骤三:根据返回的W的地址下载文件。本专利技术提供的方法与传统方法的区别在于步骤一的不同,以及多了步骤二。传统方法在步骤一中就要求服务器返回W文件的地址,这样W过大的时候会请求超时。现在的设计步骤一请求不要求返回W的地址,同时多了步骤二,客户端等待t时间发送请求询问服务器W是否准备好。由于用户请求的文件大小不一,询问W是否准备好的请求时间间隔t不能统一设定。若设定的t相对于服务准备W的时间过小,会导致客户端多次发送请求询问W是否准备好。若设定的t相对于服务准备W的时间过大,会导致服务器端早已经准备好W地址,而客户端久久不发送询问请求,导致下载时间过长。针对这个问题,本设计采用的是根据请求文件大小来计算一个时间间隔t。时间间隔t,是请求Q1返回来的数据计算出来的值。t的主要功能是确定好Q2、Q3...请求之间的时间间隔。当请求的数据量小,即服务器端可以较快的准备好下载数据,时间间隔就可以设定小一些。当请求的数据量比较大的情况下,服务器端可以需要好几分钟才能准备好下载数据,时间间隔就可以设定长一些,减少请求的的次数。具体的,所述时间间隔t的计算方法如下:时间间隔:t=N*m/t′;其中N为数据总量,m是每条数据平均大小,t′是生成一条数据所需要的平均时间。本专利技术对Web系统现有文件下载方法行了优化,解决了文件过大情况下文件下载请求超时的问题。本专利技术提供的Web系统中文件下载的方法可以用于Web系统中表格文件的下载、Web系统中图片文件下载,以及可以预估文件大小的其它文件下载。如图1所示:在Web系统中有文件、图片、表格下载功能需求时候,采用本专利技术描述的方法实现下载,详细实现步骤如下:第一步:编写下面5个程序:1)客户端页面程序F1,程序功能是点击可以触发发送文件下载的请求Q1。2)服务器端程序F2,程序功能是收到客户端下载请求后同时做两件事情:①回复请求Q1,回复内容为文件W的大小N;②开始生成请求文件W。3)客户端页面程序F3,程序功能是获取请求Q1回复中的N,计算出时间间隔t。每隔t秒钟向服务器端发送请求,询问文件W是否准备好。4)服务器端程序F4,程序功能是接收来自客户端页面的询问请求,若文件W准备好了,返回W的地址给客户器端页面,若没有准备好,返回没有准备好的标志给客户器端页面。5)客户端页面程序F5,程序功能是接收若询问请求的回复,若得到的回复是W的地址,就根据地址下载该文件,若接收到W没有准备好的标志,间隔t再发送请求询问W是否准备好,直到拿到W的地址。第二步:点击触发程序F1,进而触发依次执行程序F2,F3,F4,F5实现下载功能。以上所述仅为本专利技术的较佳实施例而已,并不用以限制本专利技术,凡本文档来自技高网...

【技术保护点】
1.一种Web系统中文件下载的方法,其特征在于:包括以下步骤:步骤一:客户端发送请求Q1,服务器端接收到请求后根据客户端请求Q1的参数,返回相应的图片数量、表格条数或其他能评估出文件大小的数据总量N,同时服务器开始生成下载文件W;步骤二:客户端根据服务器端返回的数据总量N来计算请求时间间隔t,根据请求时间间隔t来发送请求Q2询问服务器端是否生成好下载文件W;若服务器端数据已经生成好了下载文件W,立即执行步骤三;反之,则等待时间间隔t再发出询问服务器端是否打包好数据的请求Q3,如此循环步骤二直到进入步骤三;步骤三:根据返回的W的地址下载文件。

【技术特征摘要】
1.一种Web系统中文件下载的方法,其特征在于:包括以下步骤:步骤一:客户端发送请求Q1,服务器端接收到请求后根据客户端请求Q1的参数,返回相应的图片数量、表格条数或其他能评估出文件大小的数据总量N,同时服务器开始生成下载文件W;步骤二:客户端根据服务器端返回的数据总量N来计算请求时间间隔t,根据请求时间间隔t来发送请求Q2询问服务器端是否生成好下载文件W;若服务器端数据已经生成好了下载文件W,立即执行步骤三;反之,则等待时间间隔t再发出询问服务器端是否打包好数据的请求Q3,如此循环步骤二直到进入步骤三;步骤三...

【专利技术属性】
技术研发人员:朱灵蕾李波岳永胜
申请(专利权)人:四川长虹电器股份有限公司
类型:发明
国别省市:四川,51

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1