CN109451064A - web应用的离线实现方法、装置、计算机设备和存储介质 - Google Patents
web应用的离线实现方法、装置、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN109451064A CN109451064A CN201811600042.3A CN201811600042A CN109451064A CN 109451064 A CN109451064 A CN 109451064A CN 201811600042 A CN201811600042 A CN 201811600042A CN 109451064 A CN109451064 A CN 109451064A
- Authority
- CN
- China
- Prior art keywords
- data
- server
- web
- local
- web application
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/54—Presence management, e.g. monitoring or registration for receipt of user log-on information, or the connection status of the users
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
- H04L67/5682—Policies or rules for updating, deleting or replacing the stored data
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
- H04L67/5683—Storage of data provided by user terminals, i.e. reverse caching
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本申请涉及一种web应用的离线实现方法、装置、计算机设备和存储介质。该方法包括:接收对web应用的触发操作,运行web应用的本地数据;确定是否存在网络;当存在网络时,将本地数据与服务器上的数据同步。该web应用的离线实现方法中,通过接收对web应用的触发操作,运行该web应用的本地数据,使得在没有网络的情况下也能够使用web应用。再通过确定是否存在网络,当存在网络时,将本地数据与服务器上的数据同步,以确保本地的web应用的离线数据为最新版本的数据。
Description
技术领域
本申请涉及计算机技术领域,特别是涉及一种web应用的离线实现方法、装置、计算机设备和存储介质。
背景技术
随着计算机技术的不断发展,web应用已成为人们工作生活中的必备的工具。目前的大部分web应用都是在有网络的情况下才能使用,但是在一些地区或者一些场景下网络可能很差甚至没有网络可用时,也需要用到web应用。
发明内容
基于此,有必要针对上述技术问题,提供一种能够在无网络情况下使用的web应用的离线实现方法、装置、计算机设备和存储介质。
一种web应用的离线实现方法,所述方法包括:
接收对web应用的触发操作,运行所述web应用的本地数据;
确定是否存在网络;
当存在网络时,将所述本地数据与服务器上的数据同步。
在其中一个实施例中,所述运行所述web应用的本地数据,包括:
当首次运行所述web应用时,根据服务器的数据接口创建本地数据表,一个数据接口对应一张本地数据表;
获取服务器数据,将所述服务器数据插入所述本地数据表;
运行所述web应用对应的本地数据表中的本地数据。
在其中一个实施例中,所述运行所述web应用的本地数据,包括:
当首次运行web应用时,获取所有的服务器数据表;
根据所述服务器数据表创建对应的本地数据表,一张服务器数据表对应一张本地数据表;
运行所述web应用对应的本地数据表中的本地数据。
在其中一个实施例中,所述确定是否存在网络,包括:
通过网络接口发送请求;
当接收到所述网络接口返回的与该请求对应的响应信息时,判定存在网络,所述响应信息存储在所述服务器上;
当未接收到所述网络接口返回的响应信息时,判定不存在网络。
在其中一个实施例中,所述将所述本地数据与服务器上的数据同步,包括:
获取本地的所述web应用对应的版本数据中的每个文件的第一哈希值,并获取服务器的所述web应用对应的版本数据中的每个文件的第二哈希值;
将所述第一哈希值和对应的所述第二哈希值进行对比,确定哈希值不一致的服务器上的web应用对应的版本数据中的文件;
采用所述哈希值不一致的服务器上的web应用对应的版本数据中的文件,对应更新本地的web应用对应的版本数据中的文件。
在其中一个实施例中,所述将所述本地数据与服务器上的数据同步,包括:
获取本地数据中的用户数据的第一时间戳和服务器上的用户数据的第二时间戳;
比较所述第一时间戳和第二时间戳,以所述第一时间戳和第二时间戳中较晚的一个所对应的用户数据更新另一个所对应的用户数据。
在一个实施例中,所述将所述本地数据与服务器上的数据同步,包括:
进入页面时自动同步、点击同步按钮时同步和切换项目时自动同步中的至少一种。
一种web应用的离线实现装置,所述装置包括:
运行模块,用于接收对web应用的触发操作,运行所述web应用的本地数据;
判断模块,用于确定是否存在网络;
同步模块,用于当存在网络时,将所述本地数据与服务器上的数据同步。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述方法的步骤。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述方法的步骤。
上述web应用的离线实现方法、装置、计算机设备和存储介质,通过接收对web应用的触发操作,运行该web应用的本地数据,使得在没有网络的情况下也能够使用web应用。再通过确定是否存在网络,当存在网络时,将本地数据与服务器上的数据同步,以实现web应用的离线数据和服务器上的数据保持一致性。
附图说明
图1为一个实施例中web应用的离线实现方法的应用环境图;
图2为一个实施例中web应用的离线实现方法的流程示意图;
图3为一个实施例中运行web应用的本地数据的步骤的流程示意图;
图4为另一个实施例中运行web应用的本地数据的步骤的流程示意图;
图5为一个实施例中确定是否存在网络的步骤的流程示意图;
图6为一个实施例中本地数据与服务器上的数据同步步骤的流程示意图;
图7为其中一个实施例中终端运行本地的web应用的流程示意图;
图8为其中一个实施例中将本地数据和服务器的数据同步的流程示意图;
图9为一个实施例中web应用的离线实现装置的结构框图;
图10为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请实施例提供的web应用的离线实现方法,可以应用于如图1所示的应用环境中。其中,终端102通过网络与服务器104进行通信。其中,终端102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备,服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
在一个实施例中,如图2所示,提供了一种web应用的离线实现方法,以该方法应用于图1中的终端为例进行说明,包括以下步骤:
步骤202,接收对web应用的触发操作,运行web应用的本地数据。
具体地,终端接收用户对web应用的触发操作,该操作可以是用户对终端上的按键的按压操作,也可以是用户对web应用的触发操作、滑动操作,还可以是用户通过语音指定对该web应用程序的操作。终端接收该操作,开始运行web应用的本地数据。
步骤204,确定是否存在网络。
具体地,终端运行web应用的本地数据时,可通过网络接口访问网络资源以判断是否存在网络。当通过该网络接口无法访问网络资源,则判定无可用网络,当通过该网络接口能够访问网络资源,则判定存在可用网络。
步骤206,当存在网络时,将本地数据与服务器上的数据同步。
其中,数据同步包括更新本地的web应用的版本和修改用户数据两部分。
当终端确定运行web应用的本地数据时存在网络,则可以先将本地的web应用和服务器上的web应用进行对比,以判断本地web应用是否存在更新。存在更新时,从服务器上获取web应用的文件以更新本地web应用。然后根据本地修改过的数据与服务器上的修改的数据生成同步数据,根据该同步数据修改本地web应用的数据和服务器上的web应用的数据,以实现数据的同步。
上述web应用的离线实现方法中,通过接收对web应用的触发操作,运行该web应用的本地数据,使得在没有网络的情况下也能够使用web应用。再通过确定是否存在网络,当存在网络时,将本地数据与服务器上的数据同步,以确保本地的web应用的离线数据为最新版本的数据。
在一个实施例中,如图3所示,运行web应用的本地数据包括:
步骤302,当首次运行web应用时,根据服务器的数据接口创建本地数据表,一个数据接口对应一张本地数据表。
其中,首次运行指的是终端第一次进入本地的web应用,此时还未生成本地web应用的离线数据。例如,终端从服务器上下载的web应用,但只安装了该应用但并未运行,则下次第一次进入该web应用时属于首次运行该web应用。
具体地,当终端是首次运行该web应用时,需要先创建本地数据库,然后在数据库中创建本地数据表。终端可以根据与服务器上的数据接口来创建本地数据表,例如,服务器上的web应用与本地web应用有10个数据接口,则在本地数据库中创建10张数据表,一张数据表对应一个接口。当终端通过某个数据接口查询或获取数据时,返回与该数据接口对应的本地数据表中的数据,从而实现了web应用的离线使用。
步骤304,获取服务器数据,将服务器数据插入本地数据表。
具体地,终端创建本地数据表后,从服务器的web应用的数据库中获取数据,然后将从服务器上获取的数据插入本地数据表。终端的本地数据表与服务器上的数据表的数量不一定相同,则需要将服务器上的多张表的数据插入一张本地数据表中。则终端可获取服务器上的web应用的同类数据,放置在同一张本地数据表中,例如,服务器上的数据表存储的用户信息是按照日期存储的,每个日期都使用一张数据表。但这样的存储方式会占用较多的内存空间,为了节省本地的内存空间,终端可将服务器上的用户的信息都存储在同一张本地数据内,当终端需要查询本地web应用的用户信息时,只需要调用一个接口即可查询需要的数据。
步骤306,运行web应用对应的本地数据表中的本地数据。
具体地,终端运行本地的web应用实际上是通过运行该web应用对应的本地数据表中的本地数据来实现的。例如,当终端运行该本地web应用时,首先会调用页面接口从本地数据库中获取首页有关页面布局、字体、色调和控件响应的数据,加载这些数据以实现web应用的首页展示。再通过调用接口完成对本地数据的操作,并把本次操作的接口名和接口参数保存到本地操作表中,同时备份一次原数据到备份表中,作为异常恢复数据时使用。
上述web应用的离线实现方法,当首次运行web应用时,根据服务器的数据接口创建本地数据表,以实现本地数据库和数据表的创建。一个数据接口对应一张本地数据表,使得用户访问web应用的数据时,终端可通过对应的数据接口返回相应的数据,以快速响应用户。接着,终端获取服务器数据,将服务器数据插入本地数据表,运行web应用对应的本地数据表中的本地数据以实现web应用的离线运行。
在一个实施例中,如图4所示,运行web应用的本地数据包括:
步骤402,当首次运行web应用时,获取所有的服务器数据表。
具体地,当终端首次运行该web应用时,需要通过网络从服务器上获取该web应用的数据以创建本地数据,才能实现web应用的离线运行。当首次运行本地web应用,还未创建本地数据,web应用只能通过网络接口从服务器上获取对应的数据,但此时不存在可用网络时,则无法访问服务器,即无法实现该本地web应用的运行。当存在网络时,终端可先访问服务器上的web应用的所有数据表,获取数据表的总数量,然后在本地web应用对应的存储空间中创建数据库,并在数据库中创建相同数量的数据表。
步骤404,根据服务器数据表创建对应的本地数据表,一张服务器数据表对应一张本地数据表。
步骤406,运行web应用对应的本地数据表中的本地数据。
具体地,终端在创建了web应用的本地数据表之后,获取服务器上的数据表中的数据,插入到本地数据表中,并且需要将一张服务器数据表中的所有数据插入到一张本地数据表中。创建结束后得到的本地web应用的数据表与服务器上的web应用的数据表完全相同,以实现本地web应用的数据库与服务器上的web应用的数据库保持一致。接着,终端通过调用本地数据表中的本地数据以实现web应用的运行。通过创建与服务器上的web应用对应的数据表相同的本地数据表,使得本地web应用在运行时能够实现与服务器同样的业务逻辑,实现web应用在离线运行时与在网络状态下运行的一致性。
在一个实施例中,如图5所示,确定是否存在网络包括:
步骤502,通过网络接口发送请求。
步骤504,当接收到网络接口返回的与该请求对应的响应信息时,判定存在网络,该响应信息存储在服务器上。
步骤506,当未接收到网络接口返回的响应信息时,判定不存在网络。
具体地,终端接收用户对该web应用的操作后,运行该web应用。接着,终端通过该web应用的网络接口发送请求以尝试访问服务器。终端发送的请求可以是获取服务器上的存储有的而本地web应用对应的存储空间中未存储有的信息。如果在一定时间内终端能够接收到服务器返回的与该请求对应的响应信息时,判定存在网络。当终端在一定时间内未收到服务器返回的与该请求对应的响应信息,则判定不存在可用网络。通过网络接口向服务器发送请求,根据能够接收到与该请求对应的响应信息来判断是否存在网络,从而获取存在网络或不存在网络所对应的操作,并执行相应的响应操作。
在一个实施例中,如图6所示,将本地数据与服务器上的数据同步包括:
步骤602,获取本地的web应用对应的版本数据中的每个文件的第一哈希值,并获取服务器的web应用对应的版本数据中的每个文件的第二哈希值。
其中,哈希值是通过文件内容的数据通过逻辑运算的到的数值。即使两个文件的命名相同但文件内容不同,它们的哈希值也是不同的。类似的,两个文件的内容相同但命名不同,它们的哈希值也是相同的。因此哈希值可作为文件是否完整、是否被篡改的验证信息。
具体地,在存在可用网络的情况下,终端在运行本地web应用时,会先更新本地web应用的版本。终端可获取本地的web应用对应的存储空间中的每个文件,并通过哈希算法计算每个文件的哈希值,得到第一哈希值。其中,哈希算法是用来产生数据的哈希值的算法,它是将任意长度的二进制值映射为固定长度的较小二进制值,这个较小的二进制值称为哈希值。终端可利用哈希算法计算出每个文件的哈希值。接着,终端获取服务器上的web应用的每个文件,同样通过哈希算法计算每个文件的哈希值,得到第二哈希值。
步骤604,将第一哈希值和对应的第二哈希值进行对比,确定哈希值不一致的服务器上的web应用对应的版本数据中的文件。
具体地,终端将每个本地文件的第一哈希值和服务器上的对应的文件的第二哈希值进行对比。例如,将本地存储用户信息的文件的第一哈希值与服务器上用于存储用户信息的文件的第二哈希值进行对比。通过对比确定服务器上的哈希值存在的与本地的哈希值不一致的文件,判定服务器上的文件的哈希值与本地文件的哈希值不一致的文件存在更新。
步骤606,采用哈希值不一致的服务器上的web应用对应的版本数据中的文件,对应更新本地的web应用对应的版本数据中的文件。
具体地,终端可从服务器上获取哈希值不一致的文件,并用这些文件替换本地web应用对应的存储空间中的对应的文件,以实现本地的web应用的版本更新。
上述web应用的离线实现方法,通过将本地web应用的每个文件的哈希值和服务器上的web应用对应的每个文件的哈希值,以确定服务器上的web应用的版本是否存在更新。当哈希值不一致时判定存在更新,并获取存在更新的文件对应更新本地的web应用的文件,使得能够单独更新某些文件,而不需要更新整个web应用的所有文件,从而加快了web应用版本的更新速度,进而能够快速地响应用户。
在一个实施例中,将本地数据与服务器上的数据同步包括:获取本地数据中的用户数据的第一时间戳和服务器上的用户数据的第二时间戳;比较第一时间戳和第二时间戳,以第一时间戳和第二时间戳中较晚的一个所对应的用户数据更新另一个所对应的用户数据。
具体地,终端在网络可用的情况下,需要将本地的web应用的被用户修改过的数据上传给服务器,使得服务器根据本地被用户修改过的数据修改服务器上的数据。并且,终端同样需要获取服务器上修改过的数据,并根据服务器上修改的数据对应修改本地数据。终端可以通过获取本地的web应用对应的存储空间中带有修改标识的用户数据的第一时间戳,然后从服务器获取web应用对应用户数据的第二时间戳,比较两个时间戳以确定哪个用户数据的时间戳较晚,然后根据该较晚的时间戳对应的用户数据,对应更改另一端的用户数据。通过比较本地数据中的用户数据的时间戳和服务器上的用户数据的时间戳,以确定哪一段的用户数据存在修改,并根据该端修改的用户数据对应修改另一端的用户数据,以保持本地web应用和服务器web应用的数据的一致性,在存在网络时实现用户数据的同步。
在本实施例中,终端对本地的web应用中的被修改的用户数据增加flag字段,flag字段用于可相当于被修改字段的标识,例如,flag可以是0或1。在存在网络的情况下,终端从本地web应用对应的存储空间中获取带有flag字段的数据,并获取服务器上被修改的数据,然后根据这两端的被修改数据生成同步的用户数据。终端利用该生成的同步数据对应修改本地web应用对应的存储空间中的用户数据,并将该生成的同步数据发送给服务器,指示服务器根据该生成的同步数据对应修改web应用的用户数据,从而实现终端web应用和服务器web应用的用户数据的同步。
在一个实施例中,将本地数据与服务器上的数据同步,包括:进入页面时自动同步、点击同步按钮时同步和切换项目时自动同步中的至少一种。
具体地,终端实现本地的web应用和服务器的web应用的数据的同步,可以是在终端接收用户的操作,开始运行本地的web应用并进入首页时执行与服务器上的web应用的数据的同步操作。终端也可以根据接收用户对本地的web应用的同步按钮的触发操作或按压操作时,执行本地的web应用和服务器上的web应用的数据的同步操作。终端还可以在接收到用户切换项目的指令,在切换项目的同时实现本地的web应用和服务器上的web应用的数据的同步。上述web应用的离线实现方法,提供了通过用户触发同步按钮时执行同步操作,并提供了进入页面时和切换项目时实现自动同步的方式,可以满足不同用户使用本地的web应用的不同需求。
在本实施例中,终端可以设置每间隔特定的时长执行一次同步操作。例如,终端设置本地的web应用在存在网络的情况下,每10分钟执行一次同步操作。当在有网络的情况下,终端运行web应用进入页面时执行一次数据的同步操作,10分钟后,终端再次自动执行一次数据的同步操作。当用户选择点击同步按钮时,终端实现一次数据的同步操作,每隔10分钟,终端自动实现一次数据的同步操作。当终端在切换项目时,自动实现一次数据的同步操作,每隔10分钟,终端再次自动实现一次数据的同步操作。通过每间隔特定的时长执行一次同步操作,使得终端的web应用的数据与服务器上的web应用的数据能够保持一致。
如图7所示,为一个实施例中终端运行本地的web应用的过程。
在本地的web应用发布版本时,先在终端中内置一份对应版本的web页面资源,该web应用的版本可以为初始版本,也可以为任意一个已发布的版本,以解决第一次进入页面时的速度问题,使得第一次进入就是使用离线版本数据,加快渲染速度。并且避免了第一次进入时就没有网络导致无法使用该web应用的情况。终端接收到用户对web应用的功能图标的触发操作,首次运行web应用时,先创建数据库,然后根据用户的请求通过接口返回对应的响应信息。再次运行该web应用时,终端在有网络的情况下,先检测web应用的离线包是否存在更新。当不存在更新是,直接进入本地的web应用,使用本地资源。当存在更新时,终端先从服务器上下载web应用的更新的离线包,以更新本地的web应用。完成本地的web应用的更新后,进入本地页面,使用更新后的本地资源,根据用户的请求返回对应的响应信息。
如图8所示,为一个实施例中终端将本地的用户数据和服务器的用户数据进行同步的过程。终端首次运行本地的web应用时需要创建本地数据库,然后使用本地数据。经过一段时间后,终端自动实现本地web应用的用户数据和服务器上的web应用的用户数据的同步操作。执行用户数据的同步操作时,终端从本地的web应用对应的存储空间中获取带有修改标识的数据,然后检测带有修改标识的数据中是否存在图片。当存在图片时,终端先将图片上传到服务器的web应用对应的存储空间,图片上传结束后,按照上传的路径上传其余的数据。上传数据结束后,从服务器下载web应用的存在修改的用户数据,根据该修改的用户数据对应修改本地的用户数据,接着刷新页面,完成终端和服务器的web应用的用户数据的同步操作。
在一个实施例中,一种web应用的离线实现方法包括:
终端接收对web应用的触发操作。
接着,当首次运行web应用时,终端在网络可用状态下根据服务器的数据接口创建本地数据表,一个数据接口对应一张本地数据表;获取服务器数据,将服务器数据插入本地数据表;运行web应用对应的本地数据表中的本地数据。
或者,当首次运行web应用时,终端在网络可用状态下获取所有的服务器数据表;终端根据服务器数据表创建对应的本地数据表,一张服务器数据表对应一张本地数据表;终端运行web应用对应的本地数据表中的本地数据。
可选地,终端再次运行该web应用时,通过网络接口发送请求。
接着,当终端接收到网络接口返回的与该请求对应的响应信息时,判定存在网络,响应信息存储在服务器上。
接着,当终端未接收到网络接口返回的响应信息时,判定不存在网络。
进一步地,当存在网络时,终端获取本地的web应用对应的版本数据中的每个文件的第一哈希值,并获取服务器的web应用对应的版本数据中的每个文件的第二哈希值。
接着,终端将第一哈希值和对应的第二哈希值进行对比,确定哈希值不一致的服务器上的web应用对应的版本数据中的文件。
进一步地,终端采用哈希值不一致的服务器上的web应用对应的版本数据中的文件,对应更新本地的web应用对应的版本数据中的文件。
可选地,终端在进入页面时或用户点击同步按钮时或切换项目时获取本地数据中的用户数据的第一时间戳和服务器上的用户数据的第二时间戳。
接着,终端比较第一时间戳和第二时间戳,以第一时间戳和第二时间戳中较晚的一个所对应的用户数据更新另一个所对应的用户数据。
接着,终端刷新页面,完成数据同步操作。
上述web应用的离线实现方法,当首次运行web应用时,根据服务器的数据接口创建本地数据表,以实现本地数据库和数据表的创建。一个数据接口对应一张本地数据表,使得用户访问web应用的数据时,终端可通过对应的数据接口返回相应的数据,以快速响应用户。接着,终端获取服务器数据,将服务器数据插入本地数据表,运行web应用对应的本地数据表中的本地数据以实现web应用的离线运行。或者,通过创建与服务器上的web应用对应的数据表相同的本地数据表,使得本地web应用在运行时能够实现与服务器同样的业务逻辑,实现web应用在离线运行时与在网络状态下运行的一致性。接着,再次运行web应用时,通过网络接口向服务器发送请求,根据能够接收到与该请求对应的响应信息来判断是否存在网络,从而获取存在网络或不存在网络所对应的操作,并执行相应的响应操作。接着,通过将本地web应用的每个文件的哈希值和服务器上的web应用对应的每个文件的哈希值,以确定服务器上的web应用的版本是否存在更新。当哈希值不一致时判定存在更新,并获取存在更新的文件对应更新本地的web应用的文件,使得能够单独更新某些文件,而不需要更新整个web应用的所有文件,从而加快了web应用版本的更新速度,进而能够快速地响应用户。再通过比较本地数据中的用户数据的时间戳和服务器上的用户数据的时间戳,以确定哪一段的用户数据存在修改,并根据该端修改的用户数据对应修改另一端的用户数据,以保持本地web应用和服务器web应用的数据的一致性,在存在网络时实现用户数据的同步。并且,提供了通过用户触发同步按钮时执行同步操作,并提供了进入页面时和切换项目时实现自动同步的方式,可以满足不同用户使用本地的web应用的不同需求。采用web应用的离线实现方法中,能够在没有网络的情况下也能够使用web应用,并且当存在网络时,将本地数据与服务器上的数据同步,以确保本地的web应用的离线数据为最新版本的数据。
应该理解的是,虽然图1-8流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图1-8中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图9所示,提供了一种web应用的离线实现装置,包括:运行模块902、判断模块904和同步模块906,其中:
运行模块902,用于接收对web应用的触发操作,运行web应用的本地数据。
判断模块904,用于确定是否存在网络。
同步模块906,用于当存在网络时,将本地数据与服务器上的数据同步。
上述web应用的离线实现装置,通过接收对web应用的触发操作,运行该web应用的本地数据,使得在没有网络的情况下也能够使用web应用。再通过确定是否存在网络,当存在网络时,将本地数据与服务器上的数据同步,以确保本地的web应用的离线数据为最新版本的数据。
在其中一个实施例中,运行模块还用于:当首次运行web应用时,根据服务器的数据接口创建本地数据表,一个数据接口对应一张本地数据表;获取服务器数据,将服务器数据插入本地数据表;运行web应用对应的本地数据表中的本地数据。该web应用的离线实现装置,当首次运行web应用时,根据服务器的数据接口创建本地数据表,以实现本地数据库和数据表的创建。一个数据接口对应一张本地数据表,使得用户访问web应用的数据时,终端可通过对应的数据接口返回相应的数据,以快速响应用户。接着,终端获取服务器数据,将服务器数据插入本地数据表,运行web应用对应的本地数据表中的本地数据以实现web应用的离线运行。
在其中一个实施例中,运行模块还用于:当首次运行web应用时,获取所有的服务器数据表;根据服务器数据表创建对应的本地数据表,一张服务器数据表对应一张本地数据表;运行web应用对应的本地数据表中的本地数据。通过创建与服务器上的web应用对应的数据表相同的本地数据表,使得本地web应用在运行时能够实现与服务器同样的业务逻辑,实现web应用在离线运行时与在网络状态下运行的一致性。
在另一个实施例中,判断模块还用于:通过网络接口发送请求;当接收到网络接口返回的与该请求对应的响应信息时,判定存在网络,响应信息存储在服务器上;当未接收到网络接口返回的响应信息时,判定不存在网络。通过网络接口向服务器发送请求,根据能够接收到与该请求对应的响应信息来判断是否存在网络,从而获取存在网络或不存在网络所对应的操作,并执行相应的响应操作。
在另一个实施例中,同步模块还用于:获取本地的web应用对应的版本数据中的每个文件的第一哈希值,并获取服务器的web应用对应的版本数据中的每个文件的第二哈希值;将第一哈希值和对应的第二哈希值进行对比,确定哈希值不一致的服务器上的web应用对应的版本数据中的文件;采用哈希值不一致的服务器上的web应用对应的版本数据中的文件,对应更新本地的web应用对应的版本数据中的文件。该web应用的离线实现装置,通过将本地web应用的每个文件的哈希值和服务器上的web应用对应的每个文件的哈希值,以确定服务器上的web应用的版本是否存在更新。当哈希值不一致时判定存在更新,并获取存在更新的文件对应更新本地的web应用的文件,使得能够单独更新某些文件,而不需要更新整个web应用的所有文件,从而加快了web应用版本的更新速度,进而能够快速地响应用户。
在一个实施例中,同步模块还用于:获取本地数据中的用户数据的第一时间戳和服务器上的用户数据的第二时间戳;比较第一时间戳和第二时间戳,以第一时间戳和第二时间戳中较晚的一个所对应的用户数据更新另一个所对应的用户数据。通过比较本地数据中的用户数据的时间戳和服务器上的用户数据的时间戳,以确定哪一段的用户数据存在修改,并根据该端修改的用户数据对应修改另一端的用户数据,以保持本地web应用和服务器web应用的数据的一致性,在存在网络时实现用户数据的同步。
在另一个实施例中,同步模块还用于:实现进入页面时自动同步、点击同步按钮时同步和切换项目时自动同步中的至少一种。提供了通过用户触发同步按钮时执行同步操作,并提供了进入页面时和切换项目时实现自动同步的方式,可以满足不同用户使用本地的web应用的不同需求。
关于web应用的离线实现装置的具体限定可以参见上文中对于web应用的离线实现方法的限定,在此不再赘述。上述web应用的离线实现装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图10所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种web应用的离线实现方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图10中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述方法的步骤。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述方法的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种web应用的离线实现方法,所述方法包括:
接收对web应用的触发操作,运行所述web应用的本地数据;
确定是否存在网络;
当存在网络时,将所述本地数据与服务器上的数据同步。
2.根据权利要求1所述的方法,其特征在于,所述运行所述web应用的本地数据,包括:
当首次运行所述web应用时,根据服务器的数据接口创建本地数据表,一个数据接口对应一张本地数据表;
获取服务器数据,将所述服务器数据插入所述本地数据表;
运行所述web应用对应的本地数据表中的本地数据。
3.根据权利要求1所述的方法,其特征在于,所述运行所述web应用的本地数据,包括:
当首次运行web应用时,获取所有的服务器数据表;
根据所述服务器数据表创建对应的本地数据表,一张服务器数据表对应一张本地数据表;
运行所述web应用对应的本地数据表中的本地数据。
4.根据权利要求1所述的方法,其特征在于,所述确定是否存在网络,包括:
通过网络接口发送请求;
当接收到所述网络接口返回的与该请求对应的响应信息时,判定存在网络,所述响应信息存储在所述服务器上;
当未接收到所述网络接口返回的响应信息时,判定不存在网络。
5.根据权利要求1所述的方法,其特征在于,所述将所述本地数据与服务器上的数据同步,包括:
获取本地的所述web应用对应的版本数据中的每个文件的第一哈希值,并获取服务器的所述web应用对应的版本数据中的每个文件的第二哈希值;
将所述第一哈希值和对应的所述第二哈希值进行对比,确定哈希值不一致的服务器上的web应用对应的版本数据中的文件;
采用所述哈希值不一致的服务器上的web应用对应的版本数据中的文件,对应更新本地的web应用对应的版本数据中的文件。
6.根据权利要求1所述的方法,其特征在于,所述将所述本地数据与服务器上的数据同步,包括:
获取本地数据中的用户数据的第一时间戳和服务器上的用户数据的第二时间戳;
比较所述第一时间戳和第二时间戳,以所述第一时间戳和第二时间戳中较晚的一个所对应的用户数据更新另一个所对应的用户数据。
7.根据权利要求1所述的方法,其特征在于,所述将所述本地数据与服务器上的数据同步,包括:
进入页面时自动同步、点击同步按钮时同步和切换项目时自动同步中的至少一种。
8.一种web应用的离线实现装置,其特征在于,所述装置包括:
运行模块,用于接收对web应用的触发操作,运行所述web应用的本地数据;
判断模块,用于确定是否存在网络;
同步模块,用于当存在网络时,将所述本地数据与服务器上的数据同步。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7中任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811600042.3A CN109451064B (zh) | 2018-12-26 | 2018-12-26 | web应用的离线实现方法、装置、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811600042.3A CN109451064B (zh) | 2018-12-26 | 2018-12-26 | web应用的离线实现方法、装置、计算机设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109451064A true CN109451064A (zh) | 2019-03-08 |
CN109451064B CN109451064B (zh) | 2021-08-17 |
Family
ID=65535801
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811600042.3A Active CN109451064B (zh) | 2018-12-26 | 2018-12-26 | web应用的离线实现方法、装置、计算机设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109451064B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112148951A (zh) * | 2020-09-22 | 2020-12-29 | 北京居理科技有限公司 | 一种保障移动设备楼盘信息检索有效性的方法 |
CN114218534A (zh) * | 2021-12-14 | 2022-03-22 | 平安国际智慧城市科技股份有限公司 | 离线包的校验方法、装置、设备及存储介质 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101388899A (zh) * | 2007-09-12 | 2009-03-18 | 北京启明星辰信息技术有限公司 | 一种Web服务器前后台关联审计方法及系统 |
CN101529415A (zh) * | 2006-10-30 | 2009-09-09 | 微软公司 | 基于web的应用程序的离线执行 |
CN101681276A (zh) * | 2007-05-30 | 2010-03-24 | 谷歌公司 | 支持离线使用基于web的客户端服务器应用的方法和装置 |
WO2010114964A1 (en) * | 2009-04-03 | 2010-10-07 | Google Inc. | Architectural pattern for persistent web application design |
CN103257874A (zh) * | 2013-04-24 | 2013-08-21 | 深圳市中兴移动通信有限公司 | Web应用的离线运行方法和系统 |
CN103747084A (zh) * | 2014-01-08 | 2014-04-23 | 广东电网公司信息中心 | 一种企业移动高级应用平台的离线访问方法及其系统 |
CN106648917A (zh) * | 2016-09-19 | 2017-05-10 | 福建天泉教育科技有限公司 | 一种差异更新缓存数据的方法及系统 |
CN108600382A (zh) * | 2018-04-28 | 2018-09-28 | 广州联欣信息科技有限公司 | 一种在网络离线时app内容缓存的方法和计算机可读存储介质 |
CN108900510A (zh) * | 2018-06-29 | 2018-11-27 | 平安科技(深圳)有限公司 | 离线数据存储方法、装置、计算机设备及存储介质 |
-
2018
- 2018-12-26 CN CN201811600042.3A patent/CN109451064B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101529415A (zh) * | 2006-10-30 | 2009-09-09 | 微软公司 | 基于web的应用程序的离线执行 |
CN101681276A (zh) * | 2007-05-30 | 2010-03-24 | 谷歌公司 | 支持离线使用基于web的客户端服务器应用的方法和装置 |
CN101388899A (zh) * | 2007-09-12 | 2009-03-18 | 北京启明星辰信息技术有限公司 | 一种Web服务器前后台关联审计方法及系统 |
WO2010114964A1 (en) * | 2009-04-03 | 2010-10-07 | Google Inc. | Architectural pattern for persistent web application design |
CN103257874A (zh) * | 2013-04-24 | 2013-08-21 | 深圳市中兴移动通信有限公司 | Web应用的离线运行方法和系统 |
CN103747084A (zh) * | 2014-01-08 | 2014-04-23 | 广东电网公司信息中心 | 一种企业移动高级应用平台的离线访问方法及其系统 |
CN106648917A (zh) * | 2016-09-19 | 2017-05-10 | 福建天泉教育科技有限公司 | 一种差异更新缓存数据的方法及系统 |
CN108600382A (zh) * | 2018-04-28 | 2018-09-28 | 广州联欣信息科技有限公司 | 一种在网络离线时app内容缓存的方法和计算机可读存储介质 |
CN108900510A (zh) * | 2018-06-29 | 2018-11-27 | 平安科技(深圳)有限公司 | 离线数据存储方法、装置、计算机设备及存储介质 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112148951A (zh) * | 2020-09-22 | 2020-12-29 | 北京居理科技有限公司 | 一种保障移动设备楼盘信息检索有效性的方法 |
CN114218534A (zh) * | 2021-12-14 | 2022-03-22 | 平安国际智慧城市科技股份有限公司 | 离线包的校验方法、装置、设备及存储介质 |
CN114218534B (zh) * | 2021-12-14 | 2024-07-09 | 平安国际智慧城市科技股份有限公司 | 离线包的校验方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN109451064B (zh) | 2021-08-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110263275A (zh) | 一种访问网页的方法、装置、移动终端和存储介质 | |
WO2020082558A1 (zh) | 基于函数名称的埋点方法、装置、计算机设备及存储介质 | |
CN110781214A (zh) | 数据库读写方法、装置、计算机设备和存储介质 | |
CN110602165B (zh) | 政务数据同步方法、装置、系统、计算机设备和存储介质 | |
CN109358874B (zh) | 业务规则更新方法、装置、计算机设备和存储介质 | |
CN111796799B (zh) | 子应用开发方法、装置、计算机设备及存储介质 | |
CN110069264A (zh) | 构建资源包的方法、装置、计算机设备和存储介质 | |
CN109766158A (zh) | 用户界面的展示方法、装置、计算机设备和存储介质 | |
CN108694218A (zh) | 一种数据写入及读取的方法和装置 | |
CN112612988A (zh) | 页面处理方法、装置、计算机设备及存储介质 | |
CN110377361A (zh) | 数据加载方法、装置、计算机设备和存储介质 | |
CN109451064A (zh) | web应用的离线实现方法、装置、计算机设备和存储介质 | |
CN111222153A (zh) | 应用程序权限管理方法、装置和存储介质 | |
CN109587040B (zh) | 邮件处理方法、系统、计算机设备和存储介质 | |
CN111897602B (zh) | 加载及更新h5页面的方法、装置、设备及介质 | |
CN112000660B (zh) | 多报表数据处理方法、装置、计算机设备和存储介质 | |
CN108920645A (zh) | 智能设备页面显示的方法、装置、智能设备和存储介质 | |
CN113610558A (zh) | 资源分发方法、装置、电子设备及存储介质 | |
CN111090701B (zh) | 业务请求处理方法、装置、可读存储介质和计算机设备 | |
CN109766084B (zh) | 支付应用的定制开发方法、装置、计算机设备和存储介质 | |
CN113590643B (zh) | 基于双轨数据库的数据同步方法、装置、设备和存储介质 | |
CN109800247A (zh) | 数据查找方法、装置、计算机设备以及存储介质 | |
CN115269529A (zh) | 文档处理方法、装置、电子设备及存储介质 | |
CN115237459A (zh) | 软件开发工具包生成方法、装置、设备、存储介质及产品 | |
CN114428899A (zh) | 多媒体资源推送方法、装置、电子设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |