文档显示方法、装置和电子设备
文献发布时间:2023-06-19 11:39:06
技术领域
本申请涉及计算机技术领域,尤其涉及一种文档显示方法、装置和电子设备,具体可应用于智能搜索技术领域。
背景技术
便携文件格式(Portable Document Format,PDF)是一种电子文件格式,与操作系统平台无关。PDF格式已成为网络上电子文档发行和数字化信息传播的理想文档格式,越来越多的电子图书、产品说明、公司文告、网络资料、电子邮件均开始使用PDF文档。
浏览PDF文档时,用户并不需要下载整个PDF文档,有的PDF文档也不支持被下载,用户通常只需要在线浏览PDF文档即可。现有技术中,用户在线浏览PDF格式文档时,终端需要先将整个PDF文档的内容下载到本地,并对PDF文档的内容进行解析,再进行渲染,然后在线显示给用户,以供用户在线浏览。
但是,由于终端在线显示PDF文档时,需要先将整个PDF文档的内容下载到本地,若终端所处网络环境较差,则会使得PDF文档的内容的下载速度较慢,尤其是大文件,若下载速度较慢,则会使得显示等待时间较长,从而导致文档的显示效率较差。
发明内容
本申请提供了一种文档显示方法、装置和电子设备,提高了首个显示页面的显示效率,从而整体提高了待显示文档的显示效率。
根据本申请的第一方面,提供了一种文档显示方法,该文档显示方法可以包括:
在确定待显示文档为非首次显示文档时,从服务端的数据库中获取首个显示页面的数据,并从所述服务端的磁盘中获取所述待显示文档的数据;其中,所述首个显示页面为所述待显示文档前一次被显示时的终止页面。
基于所述首个显示页面的数据显示所述首个显示页面,以及基于所述待显示文档的数据显示所述待显示文档的其它页面。
根据本申请的第二方面,提供了一种文档显示装置,该文档显示装置可以包括:
获取单元,用于在确定待显示文档为非首次显示文档时,从服务端的数据库中获取首个显示页面的数据,并从所述服务端的磁盘中获取所述待显示文档的数据;其中,所述首个显示页面为所述待显示文档前一次被显示时的终止页面。
处理单元,用于基于所述首个显示页面的数据显示所述首个显示页面,以及基于所述待显示文档的数据显示所述待显示文档的其它页面。
根据本申请的第三方面,提供了一种电子设备,该电子设备可以包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述第一方面所述的文档显示方法。
根据本申请的第四方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行上述第一方面所述的文档显示方法。
根据本申请的第五方面,提供了一种计算机程序产品,所述计算机程序产品包括:计算机程序,所述计算机程序存储在可读存储介质中,电子设备的至少一个处理器可以从所述可读存储介质读取所述计算机程序,所述至少一个处理器执行所述计算机程序使得电子设备执行第一方面所述的方法。
根据本申请的技术方案,在显示文档时,可以先确定待显示文档是否为非首次显示文档;在确定该待显示文档为非首次显示文档时,从服务端的数据库中获取首个显示页面的数据,并从服务端的磁盘中获取待显示文档的数据;基于首个显示页面的数据显示首个显示页面,以及基于待显示文档的数据显示待显示文档的其它页面。鉴于数据库的读写效率较高且便于查询,使得终端可以快速地获取到首个显示页面的数据,并基于首个显示页面的数据快速显示首个显示页面,提高了首个显示页面的数据的获取效率,降低了首个显示页面的等待时长,提高了首个显示页面的显示效率,从而整体提高了待显示文档的显示效率。
应当理解,本部分所描述的内容并非旨在标识本申请的实施例的关键或重要特征,也不用于限制本申请的范围。本申请的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用于更好地理解本方案,不构成对本申请的限定。其中:
图1是本申请实施例提供的一种场景示意图;
图2是本申请实施例提供的一种通过三个通道获取数据的框架示意图;
图3是根据本申请第一实施例提供的文档显示方法的流程示意图;
图4是根据本申请第二实施例提供的显示首个显示页面及待显示文档的其它页面的方法的流程示意图;
图5是本申请实施例提供的一种三个通道协同工作的示意图;
图6是根据本申请第三实施例提供的文档显示装置的结构示意图;
图7是根据本申请第四实施例提供的一种电子设备的示意性框图。
具体实施方式
以下结合附图对本申请的示范性实施例做出说明,其中包括本申请实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本申请的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
在本申请的实施例中,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况,其中A,B可以是单数或者复数。在本申请的文字描述中,字符“/”一般表示前后关联对象是一种“或”的关系。
本申请实施例提供的技术方案可以应用于文档在线显示的场景中,具体可以应用于PDF文档在线显示的场景。用户在浏览PDF文档时,可能并不需要下载整个PDF文档,有的PDF文档也不支持被下载,用户通常只需要在线浏览PDF文档即可。现有技术中,用户在线浏览PDF格式文档时,终端需要先将整个PDF文档的内容下载到本地,并对PDF文档的内容进行解析,再进行渲染,然后在线显示给用户,以供用户在线浏览。
但是,由于终端在线显示PDF文档时,需要先将整个PDF文档的内容下载到本地,若终端所处网络环境较差,则会使得PDF文档的内容的下载速度较慢,尤其是大文件,若下载速度较慢,则会使得显示等待时间较长,从而导致文档的显示效率较差。
为了减少显示等待时长,从而提高文档的显示效率,可以考虑先快速从服务端获取待显示文档中最先显示的首页数据,并对首页数据进行解析渲染,以优先显示首页,这样可以降低首个显示页面的等待时长;并且在用户浏览首页的过程中,再从服务端获取整个待显示文档的数据,并对获取到的整个待显示文档的数据进行解析渲染,再显示待显示文档中的其它页面,有效地降低了首个显示页面的等待时长,从而提高了待显示文档的显示效率。
基于上述技术构思,本申请实施例提供了一种文档显示方法,可应用于PDF文档在线显示的场景中,示例的,请参见图1所示,图1是本申请实施例提供的一种场景示意图,该场景中可以包括服务端和终端,在线显示文档时,终端可以通过三个逻辑通道从服务端获取数据,该三个逻辑通道可分别记为首页通道、全文通道和分块通道。
其中,首页通道:用于终端从服务端的数据库中获取首页的相关数据。需要说明的是,该首页的数据不局限于指待显示文档中的首页需要的数据,可记为首页数据,还进一步包括了待显示文档的文件头、交叉引用表和文件尾,首页相关的数据通常比较小,终端只需要通过一次http请求,即可通过该首页通道获取到终端的Web端用于构建待显示文档对应的页面树以及首页。可以理解的是,若待显示文档为被首次显示的文档,则服务端的数据库中不存在该待显示文档首页的相关数据;经过显示之后,可以将该待显示文档首页的相关数据存储在远程服务器的数据库中,以便后续该待显示文档被再次显示时,使得终端可以直接通过该首页通道从服务端的数据库中获取首页的相关数据。此外,需要说明的是,在本申请实施例中,若待显示文档是否为非首次显示文档,则服务端的数据库中存储的首页数据,不是特指待显示文档中顺序显示的第一页面,而是该待显示文档前一次被显示时的终止页面,该终止页面可以是待显示文档中顺序显示的第一页面,也可以不是待显示文档中顺序显示的第一页面,具体可以根据实际需要进行设置,在此,本申请实施例不做进一步地限制。例如,本次显示为待显示文档的第五次显示,且第四次显示时的终止页面为第5页面,则服务端的数据库中存储的首页数据为该待显示文档的第5页数据。
其中,文件头:通常表示文档遵循的文档版本,例如1.3,1.7版本等。交叉引用表:记录每个对象在整个文档中的位置,通过偏移量进行定位。一个文档可以有多个交叉表。文件尾:文件尾存储了关键的元数据信息,包括交叉引用表在整个文档中的偏移位置、文档的根对象的编号、文档中具备的对象的个数等。文档的页面数据即为文档内容,文档内容:实际存储的文档内容的部分,按对象进行存储,每个对象有一个编号,但不一定按照顺序存储。
全文通道:用于终端从服务端的磁盘中获取整个待显示文档的数据。终端只需要通过一次http请求,服务端就可以通过该全文通道将整个待显示文档的数据,顺序依次传输给终端的Web端,待显示文档的数据量越大,获取该整个待显示文档的数据需要的时长越长,也受网络环境等因素的影响。
分块通道:主要为补充性通道,用于补充获取首页通道和全文通道未获取的缺失数据。若通过首页通道和全文通道已获取到所需的全部数据,则无需启用该分块通道执行补充获取操作。只有在发现通过首页通道获取到的数据存在数据缺失时,终端可以启用该分块通道,通过一次http请求,从服务端获取缺失数据。和/或,在发现通过全文通道获取到的数据存在数据缺失时,终端同样可以启用该分块通道,仍通过一次http请求,从服务端获取缺失数据。
需要说明的是,在本申请实施例中,终端通过一次http请求,从服务端获取缺失数据时,在一种可能的实现方式中,终端可以通过向服务端指示缺失数据在整个待显示文档中的起始位置和数据块大小,使得服务端根据该起始位置和数据块大小确定一定长度的数据块,该数据块即为缺失数据;并将查找到的缺失数据通过网络发送给终端,以使终端从服务端获取到该缺失数据。其中,“一定长度”为一次获取数据块的大小,示例的,数据块可以为64KB,也可以为128KB,具体可以根据实际需要进行设置,若数据块设置的太大,则会影响单次获取数据的时间,若数据块设置的太小,则会增加获取数据的次数,使得单次可获取数据量的网络环境没有被很好地使用。
在另一种可能的实现方式中,终端可以向服务端指示缺失数据在整个待显示文档中的起始位置和终止位置,使得服务端根据该起始位置和终止位置,查找该缺失数据,并将查找到的缺失数据通过网络发送给终端,以使终端从服务端获取到该缺失数据。在此,本申请实施例只是以该两种可能的实现方式为例进行说明,但并不代表本申请实施例仅局限于此。
可以理解的是,在通过上述三个通道中的任一通道获取数据时,任一通道获取到的数据中都携带有该数据在整个待显示文档中的位置信息;终端在通过任一通道获取到数据后,可以将获取到的数据合并到Web端的文档数据缓冲区中,后续再通过某一通道获取到数据后,可以将该数据与文档数据缓冲区进行逻辑或运算,以便后续进行解析和显示。
示例的,请参见图2所示,图2是本申请实施例提供的一种通过三个通道获取数据的框架示意图,在检测到用户触发的显示操作时,若终端确定源PDF文档为非首次显示的一个大小为964745字节的PDF文档,则终端可以启用首页通道从服务端的数据库中获取首个显示页面的数据,通过首页通道获取的数据的位置是分散的,主要包括了位置为0至1024之间的文件头数据,位置为957490至964744之间的文件尾数据,以及其他几个数据段,分别为位置2300至3005以及位置13005至15015,并将获取到的这些首个显示页面的数据存储至终端的文档数据缓存区中;终端在启用首页通道从服务端的数据库中获取首个显示页面的数据的同事,可以一并启用全文通道获取该源PDF文档的数据,例如,全文通道按照顺序从位置0开始向终端传输数据,假设已传输至12300位置,假设位置196605至262139之间的数据未被获取到,则启动分块通道获取位置196605至262139之间的数据,在通过首页通道、全文通道以及分块通道分别获取到数据后,将分别获取到的数据按照逻辑或合并到Web端的文档数据缓冲区中,以便后续进行解析和显示。
需要说明的是,上述三个通道均工作的情况下,可最大限度的提高Web端文档的加载速度。但若有特殊需求场景或为降低系统复杂性,可只启用其中的某一个或两个通道。例如,若只启用首页通道,则Web端可以只显示待显示文档的页面树和首页数据。若只启用全文通道,则Web端可以先通过全文通道将整个待显示文档的数据全部下载到本地,之后再显示待显示文档。若只启用分块通道,则Web端可以分段显示获取待显示文档的数据流的过程,这也是待显示文档解析的大体过程。若启用首页通道和全文通道,则可以提高了首个显示页面的数据的获取效率,降低了首个显示页面的等待时长,从而提高了首个显示页面的显示效率。
结合上述描述,本申请实施例提供了一种文档显示方法,在显示文档时,可以先确定待显示文档是否为非首次显示文档;在确定该待显示文档为非首次显示文档时,从服务端的数据库中获取首个显示页面的数据,并从服务端的磁盘中获取待显示文档的数据;基于首个显示页面的数据显示首个显示页面,以及基于待显示文档的数据显示待显示文档的其它页面。
其中,首个显示页面为待显示文档前一次被显示时的终止页面。
需要说明的是,在确定该待显示文档为非首次显示文档时,之所以从服务端的数据库中获取首个显示页面的数据,其原因在于:鉴于数据库的读写效率较高,且便于查询管理,因此,为了提高首个显示页面的数据的获取效率,可以在前一次显示结束后,将前一次显示时的终止页面的数据存储在数据库中,这样终端的Web端可以快速地从服务端的数据库中获取首个显示页面的数据进行显示,提高了首个显示页面的数据的获取效率,降低了首个显示页面的等待时长,从而提高了首个显示页面的显示效率。
可以看出,本申请实施例中,在显示文档时,可以先确定待显示文档是否为非首次显示文档;在确定该待显示文档为非首次显示文档时,从服务端的数据库中获取首个显示页面的数据,并从服务端的磁盘中获取待显示文档的数据;基于首个显示页面的数据显示首个显示页面,以及基于待显示文档的数据显示待显示文档的其它页面。鉴于数据库的读写效率较高且便于查询,使得终端可以快速地获取到首个显示页面的数据,并基于首个显示页面的数据快速显示首个显示页面,提高了首个显示页面的数据的获取效率,降低了首个显示页面的等待时长,提高了首个显示页面的显示效率,从而整体提高了待显示文档的显示效率。
此外,在确定待显示文档为首次显示文档时,结合上述图1所示,可以启用全文通道获取整个待显示文档的数据,并将获取到的整个待显示文档的数据保存在文档数据缓存区中。再访问文档数据缓存区,解析待显示文档的文件头,若文件头中存在数据缺失,则可以启动分块通道获取文件头数据,并将获取到的文件头数据合并至终端中文档数据缓存区中;再解析首个显示页面的数据中的文件尾,若文件尾中存在数据缺失,则可以启动分块通道获取文件尾数据,并将获取到的文件尾数据合并至终端中文档数据缓存区中;再次访问文档数据缓存区,基于文档数据缓存区中的文件头、交叉引用表以及文件尾构建页面数,并基于构建的页面树和获取到的整个待显示文档的数据,从第一个页面开始,依次解析每一个页面的数据,解析过程中若存在数据缺失,则启用分块通道从缺失位置开始拉取指定长度的数据流,并将拉取到的数据合并到文档数据缓存区中,以构建整个待显示文档的页面。需要注意的是,终端在获取到首个显示页面的数据后,还可以将首个显示页面的数据存储到服务端的数据库中,以便再次显示该待显示文档时,鉴于数据库的读写效率较高且便于查询,使得终端可以快速直接从服务端的数据库中获取到该首个显示页面的数据,并显示首个显示页面,提高了首个显示页面的数据的获取效率,降低了首个显示页面的等待时长,提高了首个显示页面的显示效率,从而整体提高了待显示文档的显示效率。
下面,将通过具体的实施例对本申请提供的文档显示方法进行详细地说明。可以理解的是,下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例不再赘述。
实施例一
图3是根据本申请第一实施例提供的文档显示方法的流程示意图,该文档显示方法可以由软件和/或硬件装置执行,例如,该硬件装置可以为终端。示例的,请参见图3所示,该文档显示方法可以包括:
S301、在确定待显示文档为非首次显示文档时,从服务端的数据库中获取首个显示页面的数据,并从服务端的磁盘中获取待显示文档的数据。
其中,首个显示页面为待显示文档前一次被显示时的终止页面,该终止页面可以是待显示文档中顺序显示的第一页面,也可以不是待显示文档中顺序显示的第一页面,具体可以根据实际需要进行设置,在此,本申请实施例不做进一步地限制。例如,本次显示为待显示文档的第五次显示,且第四次显示时的终止页面为第5页面,则服务端的数据库中存储的首页数据为该待显示文档的第5页数据。
终端在检测到用户触发的显示操作时,需要从服务端获取待显示文档的数据进行显示。示例的,在从服务端获取待显示文档的数据时,为了提高首个显示页面的数据的获取效率,可以先判断该待显示文档是否为首次显示的文档,若该待显示文档为首次显示的文档,则可以结合上述图1所示,通过全文通道从服务端获取整个待显示文档的数据,并在获取到整个待显示文档的数据之后,对数据进行解析渲染,再向用户显示该待显示文档;相反的,若待显示文档为非首次显示文档,说明该待显示文档之前被显示过,则为了提高首个显示页面的数据的获取效率,可以通过首页通道从服务端的数据库中获取首个显示页面的数据,这样终端的Web端可以快速地获取到首个显示页面的数据,提高了首个显示页面的数据的获取效率,降低了首个显示页面的等待时长,从而提高了首个显示页面的显示效率。
可以理解的是,通常在显示待显示文档时,不仅需要快速显示首页,而且需要显示其它页面,针对首页数据,可以快递通过首页通道从服务端的数据库中获取首个显示页面的数据;针对整个待显示文档的其它页面,可以在通过首页通道获取首个显示页面的数据的同时,通过全文通道从服务端的磁盘中获取待显示文档的数据,以使终端的Web端获取到首个显示页面的数据和整个待显示文档的数据。
这样在分别获取到首个显示页面的数据和整个待显示文档的数据后,就可以基于页面的数据显示首个显示页面,以及基于待显示文档的数据显示待显示文档的其它页面,即执行下述S302:
S302、基于首个显示页面的数据显示首个显示页面,以及基于待显示文档的数据显示待显示文档的其它页面。
可以看出,本申请实施例中,在显示文档时,可以先确定待显示文档是否为非首次显示文档;在确定该待显示文档为非首次显示文档时,从服务端的数据库中获取首个显示页面的数据,并从服务端的磁盘中获取待显示文档的数据;基于首个显示页面的数据显示首个显示页面,以及基于待显示文档的数据显示待显示文档的其它页面。鉴于数据库的读写效率较高且便于查询,使得终端可以快速地获取到首个显示页面的数据,并基于首个显示页面的数据快速显示首个显示页面,提高了首个显示页面的数据的获取效率,降低了首个显示页面的等待时长,提高了首个显示页面的显示效率,从而整体提高了待显示文档的显示效率。
基于上述图3所示的实施例,为了便于理解在上述S302中,如何基于首个显示页面的数据显示首个显示页面,以及基于待显示文档的数据显示待显示文档的其它页面,下面,将通过下述图4所示的实施例二,详细描述在本申请实施例中,如何基于首个显示页面的数据显示首个显示页面,以及基于待显示文档的数据显示待显示文档的其它页面。
实施例二
图4是根据本申请第二实施例提供的显示首个显示页面及待显示文档的其它页面的方法的流程示意图,该显示首个显示页面及待显示文档的其它页面的方法可以由软件和/或硬件装置执行,例如,该硬件装置可以为终端。示例的,请参见图4所示,该显示首个显示页面及待显示文档的其它页面的方法可以包括:
S401、对首个显示页面的数据进行解析,构建首个显示页面以及待显示文件对应的页面树。
示例的,首个显示页面的数据中除了包括首页数据之外,通常还会包括待显示文档的文件头、交叉引用表和文件尾,终端可以基于首页数据构建首个显示页面,并基于待显示文档的文件头、交叉引用表和文件尾构建待显示文件对应的页面树。
示例的,在对首个显示页面的数据进行解析时,可以先对首个显示页面的数据中的首个显示页面数据进行解析,并构建首个显示页面;并解析首个显示页面的数据中的文件头,若文件头中存在数据缺失,则可以启动分块通道获取文件头数据,并将获取到的文件头数据合并至终端中文档数据缓存区中;再解析首个显示页面的数据中的文件尾,若文件尾中存在数据缺失,则可以启动分块通道获取文件尾数据,并将获取到的文件尾数据合并至终端中文档数据缓存区中;再对待显示文档的文件头、交叉引用表和文件尾进行解析,构建待显示文件对应的页面树。若文件头和文件尾中均不存在数据缺失,则无需启用分开通道,可以直接对待显示文档的文件头、交叉引用表和文件尾进行解析,构建待显示文件对应的页面树。
可以理解的是,在文件头或者文件尾中存在数据缺失时,以文件头存在数据缺失为例,也可以不启用分块通道再次获取文件头数据,而是等待片刻,例如几十毫秒,并等待全文通道获取的数据,并基于全文通道获取文件头数据,具体可以根据实际需要确定是否启用分块通道,在此,本申请实施例不做具体限制。
在分别构建出首个显示页面以及待显示文件对应的页面树后,可以快速显示首个显示页面,提高了首个显示页面的数据的获取效率,降低了首个显示页面的等待时长,提高了首个显示页面的显示效率,从而整体提高了待显示文档的显示效率。
S402、显示首个显示页面。
可以理解的是,在本申请实施例中,终端在向用户显示首个显示页面的同时,可以根据待显示文件对应的页面树和待显示文档的数据,构建待显示文档的其它页面,即执行下述S403:
S403、根据待显示文件对应的页面树和待显示文档的数据,构建待显示文档的其它页面。
在根据待显示文件对应的页面树和待显示文档的数据构建待显示文档的其它页面时,可以从待显示文档的第一页的页面数据开始,依次对待显示文档的数据中,除首个显示页面数据之外的其它页面的数据进行解析,再根据待显示文件对应的页面树,将解析得到的其它页面的数据分别填充至对应的页面,从而构建待显示文档的其它页面。
S404、显示待显示文档的其它页面。
示例的,在显示待显示文档的其它页面时,可以先判断待显示文档的其它页面是否全部构建完成;并根据判断结果显示待显示文档的其它页面。
在一种可能的实现方式中,若确定待显示文档的其它页面全部构建完成,说明该其它页面均可以显示,则直接显示待显示文档的其它页面,以供用户浏览。
在一种可能的实现方式中,若确定待显示文档的其它页面中存在目标页面未构建完成,说明该目标页面暂时无线显示,需要进一步判断该目标页面暂时无法显示的原因,是由于该目标页面是暂时未构建,还是根本未成功获取到的该目标页面的数据导致的,因此,可以先确定待显示文档的数据中是否包括目标页面的数据;若待显示文档的数据中包括目标页面的数据,说明终端已经获取到了该目标页面的数据,只是暂时还未构建该目标页面,因此,可以直接根据待显示文件对应的页面树和目标页面的数据构建目标页面,并显示待显示文档的其它页面。若待显示文档的数据中不包括目标页面的数据,说明终端根本未成功获取到的该目标页面的数据,因此,终端可以再次通过分块通道从服务端的磁盘中获取目标页面的数据,并在获取到目标页面的数据后,根据待显示文件对应的页面树和目标页面的数据构建目标页面,并显示待显示文档的其它页面,以供用户浏览。
示例的,终端通过分块通道从服务端的磁盘中再次获取目标页面的数据时,在一种方式中,终端可以向服务端发送数据请求消息;其中,数据请求消息包括目标页面的数据在待显示数据中的起始位置和终止位置;以使服务端根据目标页面的数据在待显示数据中的起始位置和终止位置在磁盘中查找该目标页面的数据,并将查找到的目标页面的数据发送给终端;对应的,终端可以接收服务端发送的数据响应消息;其中,数据响应消息中包括目标页面的数据,从而通过分块通道从服务端的磁盘中再次获取目标页面的数据。在另一种方式中,终端可以向服务端发送数据请求消息;其中,数据请求消息包括目标页面的数据在待显示数据中的起始位置和数据块大小;以使服务端根据目标页面的数据在待显示数据中的起始位置和数据块大小在磁盘中查找该目标页面的数据,并将查找到的目标页面的数据发送给终端;对应的,终端可以接收服务端发送的数据响应消息;其中,数据响应消息中包括目标页面的数据。
可以看出,终端在显示首个显示页面及待显示文档的其它页面时,可以先对首个显示页面的数据进行解析,构建首个显示页面以及待显示文件对应的页面树,并显示首个显示页面;在显示首个显示页面的同时,可以根据待显示文件对应的页面树和待显示文档的数据,构建待显示文档的其它页面,并显示待显示文档的其它页面。这样快速从服务端的数据库中获取首个显示页面的数据后,通过构建首个显示页面并快速显示首个显示页面,提高了首个显示页面的数据的获取效率,降低了首个显示页面的等待时长,提高了首个显示页面的显示效率,从而整体提高了待显示文档的显示效率。
基于上述任一实施例,在本申请实施例中,在确定待显示文档为非首次显示文档时,之所以可以直接从服务端的数据库中获取首个显示页面的数据,是因为待显示文档被前一次显示时,终端可以获取到首个显示页面的数据,并将首个显示页面的数据存储在服务端的数据库中,这样在本次显示待显示文档时,终端才可以快速地从服务端的数据库中获取首个显示页面的数据,并基于首个显示页面的数据快速显示首个显示页面,提高了首个显示页面的数据的获取效率,降低了首个显示页面的等待时长,提高了首个显示页面的显示效率,从而整体提高了待显示文档的显示效率。
以通过首页通道、全文通道和分块通道三个通道协同工作为例,示例的,请参见图5所示,图5是本申请实施例提供的一种三个通道协同工作的示意图,在检测到显示文档的触发操作时,该文档为非首次显示的文档,终端可以启用首页通道获取文档的首个显示页面的数据,并同时启用全文通道获取该整个文档的数据;判断该首个显示页面的数据中的文件头数据是否缺失,若缺失,则启用分块通道再次从服务端获取文件头数据;若不缺失,则解析文件头,并继续判断首个显示页面的数据中的文件尾数据是否缺失,若缺失,则启用分块通道再次从服务端获取文件尾数据;若不缺失,则解析文件尾,并构建该文档的首个显示页面,以及该文档对应的页面树,显示该文档的首个显示页面,再基于根据待显示文件对应的页面树和待显示文档的数据,构建待显示文档的其它页面,并在其它页面全部构建完成后,显示该文档的其它页面,以供用户浏览。鉴于数据库的读写效率较高且便于查询,使得终端可以快速地获取到首个显示页面的数据,并基于首个显示页面的数据快速显示首个显示页面,提高了首个显示页面的数据的获取效率,降低了首个显示页面的等待时长,提高了首个显示页面的显示效率,从而整体提高了待显示文档的显示效率。
实施例三
图6是根据本申请第三实施例提供的文档显示装置60的结构示意图,示例的,请参见图6所示,该文档显示装置60可以包括:
获取单元601,用于在确定待显示文档为非首次显示文档时,从服务端的数据库中获取首个显示页面的数据,并从服务端的磁盘中获取待显示文档的数据;其中,首个显示页面为待显示文档前一次被显示时的终止页面。
处理单元602,用于基于首个显示页面的数据显示首个显示页面,以及基于待显示文档的数据显示待显示文档的其它页面。
可选的,处理单元602包括第一处理模块、第二处理模块、第三处理模块以及第四处理模块。
第一处理模块,用于对首个显示页面的数据进行解析,构建首个显示页面以及待显示文件对应的页面树。
第二处理模块,用于显示首个显示页面。
第三处理模块,用于根据待显示文件对应的页面树和待显示文档的数据,构建待显示文档的其它页面。
第四处理模块,用于显示待显示文档的其它页面。
可选的,第四处理模块包括第一处理子模块和第二处理子模块。
第一处理子模块,用于判断待显示文档的其它页面是否全部构建完成。
第二处理子模块,用于在待显示文档的其它页面全部构建完成时,显示待显示文档的其它页面。
可选的,处理单元602还包括第五处理模块和第六处理模块。
第五处理模块,用于在待显示文档的其它页面中存在目标页面未构建完成时,确定待显示文档的数据中是否包括目标页面的数据。
第六处理模块,用于若待显示文档的数据中包括目标页面的数据,则根据待显示文件对应的页面树和目标页面的数据构建目标页面,并显示待显示文档的其它页面。
可选的,处理单元602还包括第七处理模块和第八处理模块。
第七处理模块,用于若待显示文档的数据中不包括目标页面的数据,则再次从服务端的磁盘中获取目标页面的数据。
第八处理模块,用于根据待显示文件对应的页面树和目标页面的数据构建目标页面,并显示待显示文档的其它页面。
可选的,第七处理模块包括第三处理子模块和第四处理子模块。
第三处理子模块,用于向服务端发送数据请求消息;其中,数据请求消息包括目标页面的数据在待显示数据中的起始位置和终止位置。
第四处理子模块,用于接收服务端发送的数据响应消息;其中,数据响应消息中包括目标页面的数据,目标页面的数据是基于起始位置和终止位置确定的。
可选的,获取单元601还包括第一获取模块,处理单元602还包括第九处理模块。
第一获取模块,用于在待显示文档被首次显示时,获取首个显示页面的数据。
第九处理模块,用于将首个显示页面的数据存储在服务端的数据库中。
本申请实施例提供的文档显示装置60,可以执行上述任一实施例所示的文档显示方法的技术方案,其实现原理以及有益效果与文档显示方法的实现原理及有益效果类似,可参见文档显示方法的实现原理及有益效果,此处不再进行赘述。
根据本申请的实施例,本申请还提供了一种计算机程序产品,计算机程序产品包括:计算机程序,计算机程序存储在可读存储介质中,电子设备的至少一个处理器可以从可读存储介质读取计算机程序,至少一个处理器执行计算机程序使得电子设备执行上述任一实施例提供的方案。
实施例四
根据本申请的实施例,本申请还提供了一种电子设备和一种可读存储介质。
图7是根据本申请第四实施例提供的一种电子设备70的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
如图7所示,电子设备70包括计算单元701,其可以根据存储在只读存储器(ROM)702中的计算机程序或者从存储单元708加载到随机访问存储器(RAM)703中的计算机程序,来执行各种适当的动作和处理。在RAM 703中,还可存储设备70操作所需的各种程序和数据。计算单元701、ROM 702以及RAM 703通过总线704彼此相连。输入/输出(I/O)接口705也连接至总线704。
设备70中的多个部件连接至I/O接口705,包括:输入单元706,例如键盘、鼠标等;输出单元707,例如各种类型的显示器、扬声器等;存储单元708,例如磁盘、光盘等;以及通信单元709,例如网卡、调制解调器、无线通信收发机等。通信单元709允许设备70通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
计算单元701可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元701的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元701执行上文所描述的各个方法和处理,例如文档显示方法。例如,在一些实施例中,文档显示方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元708。在一些实施例中,计算机程序的部分或者全部可以经由ROM 702和/或通信单元709而被载入和/或安装到设备70上。当计算机程序加载到RAM 703并由计算单元701执行时,可以执行上文描述的文档显示方法的一个或多个步骤。备选地,在其他实施例中,计算单元701可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行文档显示方法。
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与VPS服务("Virtual Private Server",或简称"VPS")中,存在的管理难度大,业务扩展性弱的缺陷。服务器也可以为分布式系统的服务器,或者是结合了区块链的服务器。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发申请中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本申请公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本申请保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本申请的精神和原则之内所作的修改、等同替换和改进等,均应包含在本申请保护范围之内。
- 接口文档显示方法、装置、存储介质及电子设备
- 文档显示方法、装置和电子设备