具体实施方式
为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实施方式对本发明进行进一步的详细描述。需要说明的是,在不冲突的情况下,本申请的实施例及实施例中的特征可以相互组合。
在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是,本发明还可以采用其他不同于在此描述的其他方式来实施,因此,本发明并不限于下面公开的具体实施例的限制。
图1示出了根据本发明的实施例的文档数据下载装置的框图。
如图1所示,根据本发明的实施例的文档数据下载装置100,可以包括:待下载数据块确定单元102,用于接收文档数据请求,根据数据块的下载基本单位大小,确定下载所述文档数据所需的待下载数据块的数量,以及按照预定规则,确定待下载数据块的下载顺序和下载状态;下载单元104,用于按照所述下载顺序和下载状态,下载各待下载数据块,以及对于每个数据块,将下载完成的所述数据块提供给终端。
该数据块的下载基本单位大小可根据用户需要进行设置,当用户每次浏览内容较多时,可将下载基本单位大小设置为较大值,同理,当用户每次浏览内容较少时,可将下载基本单位大小设置为较小值。该文档数据可以是结构化文档,例如word、CEBX(Common e-Document of BlendingXML,基于混合XML的公共电子文档)、PDF等格式的文档。在本实施例中,根据预先确定的下载顺序下载所需的数据块,可以根据用户的阅读速度或其他要求下载所需的数据块,实现了边下载边阅读的功能,只将用户需要浏览的数据块提供给用户,不仅提高了浏览效率,也减少了数据流量。
上述预设规则可以根据需要制定,例如,可以基于所述待下载数据块在所述文档数据中的位置顺序,建立待下载列表,所述待下载列表用于记录待下载数据块的下载顺序和下载状态;该预设规则也可以根据用户的要求设置待下载数据块的顺序,假设一个文档数据包含图片和文字,则可以先下载文字,然后下载图片,或者也可以先下载图片,然后下载文字;该预设规则还可以根据数据块的数量的大小设置同时下载数据块的数量,例如,可以先同时下载两个数据块,然后同时下载三个数据块,如此递增,这样可以缓解初始下载压力,并且同样可以提高下载效率。
在上述技术方案中,优选的,所述下载单元104还用于在接收到跳跃浏览请求时,优先下载与所述跳跃浏览请求对应的指定数据块。在某些场景下,用户并不是按顺序浏览文档内容的,只是选择了某一部分进行阅读,本发明可提供跳跃浏览的功能,直接跳跃下载用户指定的数据块,解决了按需下载的技术问题。如果用户退出阅读器,那么就不用下载未下载完成的数据块了,为用户节省数据流量的同时,也提高了下载效率,减少缓冲等待的时间,提升用户体验。
优选的,文档数据下载装置100还可以包括:判断单元106,用于在接收到所述跳跃浏览请求后,判断所述指定数据块是否已下载完毕,在判断结果是未下载时,所述下载单元104优先下载所述指定数据块,在判断结果是已下载时,直接提供所述指定数据块。
在上述技术方案中,优选的,如果上述文档数据是具有分页特征的复合文档,那么下载单元104还用于在接收到浏览请求时,下载文档数据的文件头,根据文件头描述的文档数据的页码数,创建页状态列表,页状态列表用于记录各页码的下载状态;待下载数据块确定单元102根据文件头确定文档数据的大小。
在建立页状态列表和待下载列表时,可根据文档数据的文件头确定页状态列表中包含的页数,以及待下载列表中所应用包含的数据块的数量。当用户进行跳页浏览时,可优先下载将该指定页对应的数据块,例如将该指定页对应的数据块设置在上述待下载列表的前端。
若文档数据不具有分页特征,则直接根据记录的数据块的下载状态判断该指定数据块是否已下载,根据判断结果确定是否需要下载。若该文档数据具有分页特征,则可以建立页状态列表,基于页状态列表,可判断用户请求浏览的指定页是否已下载,如果跳页浏览的页面已下载,则无需重新下载,节省数据流量,直接显示已下载的数据,提高浏览效率。
所述下载单元104还用于在下载完所述指定数据块后,继续下载与所述指定数据块相邻的数据块。若该文档数据不具有分页特征,则优先下载该指定数据块相邻的数据块,用于预测用户可能浏览的内容。若该文档数据具有分页特征,则在待下载列表中,将指定页的上一页和/或指定页的下一页对应的数据块调整至指定页对应的数据块的下方。因此,为了提高阅读效率,可优先下载与指定页相邻的页面的数据块,从而使用户可快速浏览前后页的内容,达到预测下载的效果。
在上述任一技术方案中,优选的,该文档数据下载装置100还可以包括:建立单元108,用于根据文件头描述的文档数据的文档大小创建空文档;写入单元110,按照待下载数据块在文档数据中的位置信息,将已下载的待下载数据块的内容写入空文档中。
本发明提供的一种终端,可以包括上述任一技术方案中所描述的文档数据下载装置100。该终端可以是移动电话、笔记本电脑、台式电脑、个人数字助理、便携式多媒体播放器、平板计算机和/或电子书阅读器。
该终端通过可预测的流式下载方法,可实现边下载边阅读的技术效果,也可实现文档数据的按需下载,提高终端用户的浏览效率及终端的网络利用率。用户可以随时停止下载不需要的页,从而达到减少网络流量的技术效果,提高了用户体验。
图2示出了根据本发明的一个实施例的文档数据下载方法的流程图。
如图2所示,根据本发明的实施例的文档数据下载方法,包括以下步骤:
步骤202,接收文档数据请求,根据数据块的下载基本单位大小,确定下载所述文档数据所需的待下载数据块的数量;步骤204,按照预定规则,确定待下载数据块的下载顺序和下载状态;步骤206,按照所述下载顺序和下载状态,下载各待下载数据块;步骤208,对于每个数据块,将下载完成的所述数据块提供给终端。
该数据块的下载基本单位大小可根据用户需要进行设置,当用户每次浏览内容较多时,可将下载基本单位大小设置为较大值,同理,当用户每次浏览内容较少时,可将下载基本单位大小设置为较小值。该文档数据可以是结构化文档,例如word、CEBX、txt或PDF格式的文档。在本实施例中,根据预先确定的下载顺序下载所需的数据块,可以根据用户的阅读速度或其他要求下载所需的数据块,即实现了边下载边阅读的功能,只将用户需要浏览的数据块提供给用户,因此,不仅提高了浏览效率,也减少了数据流量。
所述预设规则可以包括基于所述待下载数据块在所述文档数据中的位置顺序,建立待下载列表,所述待下载列表用于记录待下载数据块的下载顺序和下载状态。该预设规则也可以包括根据用户的要求设置待下载数据块的顺序,假设一个文档数据包含图片和文字,则可以先下载文字,然后下载图片,或者也可以先下载图片,然后下载文字。该预设规则还可以包括根据数据块的数量的大小设置每次下载的数据块的数量,可以先同时下载两个数据块,然后同时下载三个数据块,如此递增,这样可以缓解初始下载压力,并且同样可以提高下载效率。
在上述技术方案中,优选的,在接收到跳跃浏览请求时,优先下载与所述跳跃浏览请求对应的指定数据块。在某些场景下,用户并不是按顺序浏览文档内容的,只是选择了某一部分进行阅读,因此,可提供跳跃浏览的功能,直接跳跃下载用户指定的数据块,不下载指定的数据块之前的数据块,如果用户退出阅读器,那么就不用下载未下载的数据块了,为用户节省数据流量的同时,也提高了下载效率,减少缓冲等待的时间,提升用户体验。
在上述技术方案中,优选的,在开始下载文档数据之前还可以包括以下步骤:如果上述文档数据是具有分页特征的复合文档,那么在接收到浏览请求时,下载文档数据的文件头,根据文件头描述的文档数据的页码数,创建页状态列表,页状态列表用于记录各页码的下载状态,以及根据文件头确定文档数据的大小。在建立页状态列表和待下载列表时,可根据文档数据的文件头确定页状态列表中包含的页数,以及待下载列表中所应用包含的数据块的数量。
在上述技术方案中,优选的,在接收到跨页请求后,还可以包括:基于页状态列表判断指定页是否已下载完毕;在判断结果是未下载时,优先下载指定数据块,在判断结果是已下载时,直接提供指定页的内容。
若文档数据不具有分页特征,则直接根据记录的数据块的下载状态判断该指定数据块是否已下载,根据判断结果确定是否需要下载。若该文档数据具有分页特征,则可以建立页状态列表,基于页状态列表,可判断用户请求浏览的指定页是否已下载,如果跳页浏览的页面已下载,则无需重新下载,节省数据流量,直接显示已下载的数据,提高浏览效率。
该文档数据下载方法还包括在下载完所述指定数据块后,继续下载与所述指定数据块相邻的数据块。若该文档数据不具有分页特征,则下载该指定数据块相邻的数据块,用于预测用户可能浏览的内容。若该文档数据具有分页特征,则在待下载列表中,将指定页的上一页和/或指定页的下一页对应的数据块调整至指定页对应的数据块的下方。因此,为了提高阅读效率,可优先下载与指定页相邻的页面的数据块,从而使用户可快速浏览前后页的内容,达到预测下载的效果。
在上述任一技术方案中,优选的,还可以包括:根据文件头描述的文档数据的文档大小创建空文档;按照待下载数据块在所述文档数据中的位置信息,将已下载的待下载数据块的内容写入所述空文档中。
为了进一步提高下载速度,针对所需的数据块,例如当前浏览页需要的数据块,可在按照多进程的方式,同时下载两个数据块或同时下载更多个数据块。
在本实施例中,以具有分页特征的复合文档为例。图3示出了根据本发明的另一实施例的基于具有分页特征的文档数据的流式下载方法的流程图,如图3所示,包括以下步骤:
步骤302,下载具有分页特征的复合文档的文件头。复合文档的文件头描述了文档的基本信息,包括文档的页码、文档大小、字体资源等信息。复合文档包含多页,每一页是独立的浏览单位。
步骤304,根据复合文档大小在磁盘上创建空文档。
步骤306,根据文档页码数,创建页状态列表,保存各页是否已下载信息。
步骤308,启动页状态检验线程,检验各页是否已下载。若某页已下载,则标记页状态列表中的对应页的状态。页状态有:已下载、未下载、正在下载。
最后,启动文档数据下载线程进行文档内容下载。
例如,设定文档大小为X千字节,文件头大小为m千字节,数据块下载基本单位大小为y千字节,则需要下载的数据块为(X-m/y)+1。一个页面可由1个或多个数据块组成。待下载数据块按照位置先后顺序存在于待下载列表中,数据块状态有:已下载、未下载。
下载线程遍历待下载列表,待下载列表动态可变,随着用户的翻页操作,会不断的更新待下载列表的长度和状态,当一个数据块下载完毕后,更新待下载列表中对应数据块的下载状态,并将数据块内容按照位置信息填写入创建的空文档中。
此下载线程一直工作直到待下载列表中所有数据块都已下载完毕。线程在以下情况下停止工作:
A、外界主动停止此线程工作;
B、数据块列表中所有块数据的状态都是已下载。
当用户点击跳转浏览第N页,先从页状态列表中检查第N页是否已下载,如果已经下载,则直接使用阅读器打开此页,并显示给用户看;如果第N页状态为未下载,则将此页的数据块加入待下载列表的前端,进行优先下载数据,可确保用户可以最快看到自己想要浏览的页,这样待下载列表的长度就变长了,当第N页的数据块下载完毕后,在待下载列表中将该页对应的下载状态变更为已下载。为了提高阅读效率,按照用户使用习惯预测,优先将第N-1页和N+1页的数据块加入待下载列表的前端,可以优先下载前后页数据,从而使用户可以快速浏览前后页内容,达到预测下载的效果。
下面结合图4详细说明根据本发明的技术方案。
1.下载具有分页特征的复合文档的文件头。
复合文档的文件头描述了文档的基本信息,包括文档的页码、文档大小、字体资源等信息。复合文档包含多页,每一页是独立的浏览单位。
2.根据复合文档大小在磁盘上创建空文档,假设文档大小为100千字节。
3.根据文档页码数(假设文档页码数有30页),创建页状态列表,该页状态列表的长度为30,保存各页是否已下载信息。
4.启动页状态检验线程,检验各页是否已下载。
当某页已下载,则标记页状态列表中的对应页的状态。页状态有:已下载、未下载、正在下载。
5.启动文档数据下载线程进行文档内容下载。
在文档大小为100千字节,文件头大小为2千字节,页码为30页,数据块下载基本单位大小为3千字节时,需要下载的数据块为(100-2)除以3取整加1为33块。一个页面可由1个或多个数据块组成。待下载数据块按照位置先后顺序存在于待下载列表中,初始状态下待下载列表长度为33个,待下载列表中数据块状态有:已下载、未下载。
下载线程遍历待下载列表,该待下载列表动态可变,随着用户的翻页操作,会不断地更新待下载列表的长度和状态,当一个数据块下载完毕后,更新待下载列表中对应数据块的下载状态,并将数据块内容按照位置信息填写入创建的空文档中。
图4示出了根据本发明的实施例的跨页浏览流式下载处理流程图,如图4所示,包括以下步骤:
步骤402,用户点击跳转浏览第10页。
步骤404,启动页状态检验线程。步骤406,从页状态列表中检查第10页是否已下载,如果已经下载,则进入步骤408,直接使用阅读器打开此页,并显示给用户看;如果第10页状态为未下载,则进入步骤410,将此页的数据块加入待下载列表的前端。优先下载第10页的数据块,可确保用户可以最快看到自己想要浏览的页。为了提高阅读效率,按照用户使用习惯预测,优先将第9页和11页的数据块加入待下载列表的前端,可以优先下载前后页数据,从而使用户可以快速浏览前后页内容,达到预测下载的效果。
如图5所示,随着用户的浏览翻页操作的不断执行,待下载列表也随之动态变化,在初始状态,待下载列表中的结构如图5中的左列表所示。当用户跨页浏览第10页时,将第10页对应的数据块加入到待下载列表的前端,优先下载该第10页对应的数据块,此时待下载列的长度和状态也发生了改变,如图5中的右列表所示。
具有结构化特征的文档可能不是按照页来划分,而是按照章节等结构进行划分,或者根据信息的分类(例如图片、文字)来进行划分,下面结合图6以具有章节结构特征的文档来说明跳跃浏览文档的下载处理方法。如图6所示,包括以下步骤:在步骤602,假设用户在阅读具有章节结构特征的文档,并且当前已阅读到第2章,此时用户想直接阅读到第8章的内容,那么请求跳转浏览该文档的第8章。
在步骤604,启动章节状态检验线程。在步骤606,判断第8章的内容是否已下载,若已下载,则进入步骤608,直接将第8章的内容提供给终端;若未下载,则进入步骤610,将第8章对应的数据块(一个数据块或多个数据块)加入到待下载列表的前端,优先下载第8章的内容,忽略第3章至第7章之间的内容。因此,可提高下载效率并且节省了网络流量。为了达到预测下载的效果,在下载完第8章的内容之后,可将第7章和第9章的内容进行优先下载。
以上结合附图详细说明了根据本发明的技术方案,可实现边文档数据的边下载边浏览,也可以实现文档数据的快速跨页浏览,并通过可预测的下载方法,提高终端用户的浏览效率及终端的网络利用率。用户可以随时停止下载不需要的页,从而达到减少网络流量的技术效果。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。