首页> 中国专利> 一种Web应用程序页面脚本资源自动更新方法及系统

一种Web应用程序页面脚本资源自动更新方法及系统

摘要

本发明公开了一种Web应用程序页面脚本资源自动更新方法及系统,其中方法的实现过程为:应用程序页面版本记录;应用程序页面脚本资源定义;应用程序页面更新部署;应用程序页面脚本资源自动更新;系统的结构包括应用程序页面依赖资源维护模块和应用程序更新部署模块两个模块,来实现Web应用程序页面脚本资源自动更新方法。本发明的一种Web应用程序页面脚本资源自动更新方法及系统与现有技术相比,通过该方法组织html页面依赖的资源,解决资源更新后客户端浏览器无法立即更新的问题,实用性强,适用范围广泛,适用于JavaScript语言开发的Html应用,具有很好的推广应用价值。

著录项

  • 公开/公告号CN106775830A

    专利类型发明专利

  • 公开/公告日2017-05-31

    原文格式PDF

  • 申请/专利权人 魏熙柠;

    申请/专利号CN201611055529.9

  • 发明设计人 魏熙柠;

    申请日2016-11-25

  • 分类号G06F9/445(20060101);

  • 代理机构37100 济南信达专利事务所有限公司;

  • 代理人孟峣

  • 地址 250000 山东省济南市市中区瑞福苑1区1号楼502

  • 入库时间 2023-06-19 02:23:20

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2017-12-26

    授权

    授权

  • 2017-06-23

    实质审查的生效 IPC(主分类):G06F9/445 申请日:20161125

    实质审查的生效

  • 2017-05-31

    公开

    公开

说明书

技术领域

本发明涉及计算机技术领域,具体地说是一种Web应用程序页面脚本资源自动更新方法及系统。

背景技术

为了节约网络资源和提高浏览速度,浏览器提供了缓存(Browser Caching)机制。浏览器在用户磁盘上对最近请求过的文档进行存储,当访问者再次请求这个页面时,浏览器就可以从本地磁盘显示文档,这样就可以加速页面的阅览。当前基于Html的Web应用脚本规模越来越大,当需要下载的脚本资源体积较大时,浏览器的缓存机制就尤为重要。程序开发者既要利用浏览器缓存机制,缓存应用程序所需的资源文件,又要保证应用程序相关文件更新后,所有客户端都能获取到更新后的文件,这是一个不小的挑战。基于此,本专利提供一种Web应用程序页面脚本资源自动更新方法及系统,来解决以上问题。

发明内容

本发明的技术任务是针对以上不足之处,提供一种Web应用程序页面脚本资源自动更新方法及系统。

一种Web应用程序页面脚本资源自动更新方法,其自动更新过程为:

首先定义并记录应用程序页面版本;

然后定义应用程序页面脚本资源,结合上述应用程序版本记录,建立应用程序页面脚本资源与应用程序页面之间的依赖关系;

进行应用程序页面更新部署,即在应用程序页面引用的应用程序页面脚本资源被更新时,该应用程序页面版本同时更新;

最后进行应用程序页面脚本资源自动更新。

在定义并记录应用程序页面版本的步骤中,首先定义应用程序页面版本表、应用程序页面版本访问接口,其中应用程序页面版本表包括若干应用程序页面,每个应用程序页面有唯一的标识和版本;应用程序页面版本访问接口则包括用于更新应用程序页面版本的接口,返回值为应用程序页面版本;将版本文件中存储的应用程序页面版本加载到内存中的接口,返回值为应用程序页面版本;将内存中的应用程序页面版本保存到本地的接口,无返回值;从数据库中读取应用程序页面最新版本的接口,无返回值。

应用程序页面标识为唯一标识,版本则为标记应用程序页面版本的36位GUID,即每一个Html页面有唯一的标识和版本;应用程序页面版本用于标识应用程序页面内容以及依赖应用程序页面脚本资源的变化,即当一个应用程序页面脚本资源内容变化后,依赖这个应用程序页面脚本资源的所有应用程序页面的版本都将变化。

建立应用程序页面脚本资源与应用程序页面的依赖关系具体过程为:

首先建立应用程序页面脚本资源表,该应用程序页面脚本资源表中包括脚本资源标识和脚本资源名称,脚本资源标识是唯一标识应用程序页面脚本资源的36位GUID,用来与应用程序页面建立关联关系;应用程序页面脚本资源名称记录了应用程序页面脚本资源文件的文件名;

将应用程序页面所使用的所有应用程序页面脚本资源预制到应用程序页面脚本资源表中,该应用程序页面脚本资源表包括依赖关系标识、应用程序页面标识和脚本资源标识;

基于依赖关系标识、应用程序页面标识和脚本资源标识,建立应用程序页面与应用程序页面脚本资源的依赖关系。

进行应用程序页面更新部署包括以下步骤:

部署一个应用程序页面脚本资源文件时,根据应用程序页面脚本资源文件名,确定应用程序页面脚本资源的唯一标识符,即脚本资源标识;

根据应用程序页面的脚本资源标识,查找应用程序页面和脚本依赖关系,即查找依赖关系标识,然后取得需要更新的应用程序页面列表;

更新所有待更新的应用程序页面的页面版本。

应用程序页面脚本资源自动更新是指将页面版本表中的变化体现到页面上,更新具体的页面,其具体过程为:

访问应用程序入口页,发现被访问的页面版本发生变化;

分析页面引用的脚本资源,重新计算脚本资源引用地址的后缀,重新计算后,新部署的文件地址后缀发生变化,未更新的文件地址后缀不变;

完成页面更新,由应用程序入口页跳转到被访问页;

浏览器下载到更新的页面和脚本资源。

所述应用程序入口页,用于浏览器访问应用程序页面时,先访问的一个动态页面,然后再跳转到应用程序页面,具体跳转过程为:应用程序入口页面通过Get方式接收应用程序页面ID,找到应用程序页面ID唯一标识的页面,完成页面更新后,跳转到此页面。

应用程序页面脚本资源自动更新的具体过程为:

获取应用程序页面版本:首先,通过应用程序页面版本访问接口,获取数据库中此页面的最新页面版本,然后,在内存中查找此页面的内存版本,如果未得到页面的内存版本,则继续通过应用程序页面版本访问接口,将服务器本地文件中存储的页面版本加载到内存中;再次,查找此页面的内存版本,如果仍未得到页面的内存版本,则页面版本为空;

比较应用程序页面版本:比较内存页面版本和从数据库获取的页面最新版本是否一致,如果版本一致,说明应用程序页面及应用程序页面依赖的资源没有发生变化,直接跳转到应用程序页面;如果版本不一致,说明页面依赖的资源发生变化,需要确保更新的资源下载到浏览器端,将内存页面版本更新为页面最新版本,并同时更新服务器本地文件中存储的页面版本;

更新应用程序页面引用应用程序页面脚本资源地址,即更新应用程序页面引用应用程序页面脚本资源的URL地址,具体为更新应用程序页面脚本资源引用地址的后缀,达到应用程序页面脚本资源重新部署后强制下载到浏览器端的效果。

在该技术方案中,数据库用来存储页面的版本信息,对应上述步骤中的“应用程序页面版本表”,页面版本存储在应用程序版本记录表中;内存版本即为缓存的版本,应用服务器上的本地文件则用于记录页面版本,即备份内存版本,解决应用服务器重启或发生异常时,页面内存版本丢失的问题,避免因为内存版本丢失而出现页面版本不一致,从而导致脚本资源为发生变化却被强制下载到浏览器端的问题。

更新应用程序页面引用应用程序页面脚本资源地址的具体过程为:

读取应用程序页面中引用的资源文件地址,分析提取文件路径,归集成文件路径数组;

遍历文件路径数组,逐个读取应用程序页面脚本资源文件内容,根据文件内容计算引用路径的后缀,计算文件后缀的采用的方式为计算文本内容的哈希值,文本内容相同,计算出的文件后缀相同;文本内容不同,计算出的文件后缀不同;

使用文件路径数组和重新计算出的文件后缀,组成新的应用程序页面脚本资源文件引用地址,回写到应用程序页面中;

浏览器由应用程序入口页跳转到更新后的应用程序页面;

浏览器访问应用程序页面时,被更新文件的引用地址发生变化,从而该资源文件被强制下载。

一种Web应用程序页面脚本资源自动更新的系统,包括:应用程序页面依赖资源维护模块,定义应用程序页面依赖的应用程序页面脚本资源,提供人机交互功能;应用程序更新部署模块,部署应用程序页面和应用程序页面脚本资源,确保新的资源及时更新。

应用程序页面依赖资源维护模块,用于预制应用程序页面标识,初始应用程序页面版本;录入应用程序页面使用的所有应用程序页面脚本资源;选择应用程序页面和应用程序页面脚本资源文件,两两建立依赖关系;

应用程序更新部署模块,按照应用程序部署目录建立应用程序更新包;生成应用程序页面脚本资源更新清单;部署应用程序页面脚本资源文件;根据文件部署清单更新应用程序页面版本;提供应用程序入口页面,在入口页面动态更新应用程序页面。

本发明的一种Web应用程序页面脚本资源自动更新方法及系统和现有技术相比,具有以下有益效果:

本发明的一种Web应用程序页面脚本资源自动更新方法及系统,根据应用的需要,灵活配置应用程序页面所依赖的脚本资源,部署更新脚本资源后,可以确保更新后的脚本资源及时下载到浏览器端,通过该方法组织html页面依赖的资源,解决资源更新后客户端浏览器无法立即更新的问题,实用性强,适用范围广泛,适用于JavaScript语言开发的Html应用,具有很好的推广应用价值。

附图说明

附图1是本发明Web脚本资源自动更新方法执行流程图。

附图2是本发明Web脚本资源自动更新系统结构框图。

具体实施方式

下面结合附图及具体实施例对本发明作进一步说明。

如附图1所示,一种可扩展的用户提示信息定义方法,其实现过程为:

本发明公开了一种Web应用程序页面脚本资源自动更新方法和系统,适用于JavaScript语言开发的Html应用,方法包括:应用程序页面版本记录;应用程序页面脚本资源定义;应用程序页面更新部署;应用程序页面脚本资源自动更新,系统包括:应用程序页面依赖资源维护模块;应用程序更新部署模块。通过该方法和系统组织html页面依赖的资源,解决资源更新后客户端浏览器无法立即更新的问题。

一种Web应用程序页面脚本资源自动更新方法,其自动更新过程为:

步骤一、首先定义并记录应用程序页面版本;

步骤二、然后定义应用程序页面脚本资源,结合上述应用程序版本记录,建立应用程序页面脚本资源与应用程序页面之间的依赖关系;

步骤三、进行应用程序页面更新部署,即在应用程序页面引用的应用程序页面脚本资源被更新时,该应用程序页面版本同时更新;

步骤四、最后进行应用程序页面脚本资源自动更新。

在定义并记录应用程序页面版本的步骤中,首先定义应用程序页面版本表、应用程序页面版本访问接口,其中应用程序页面版本表包括若干应用程序页面,每个应用程序页面有唯一的标识和版本,具体如下表:

应用程序页面标识,为唯一标记应用程序页面的36位GUID,在本发明中每一个Html页面有唯一的标识。

应用程序页面版本,标识应用程序页面内容以及依赖资源的变化。当一个脚本资源内容变化后,依赖这个脚本资源的所有应用程序页面的版本都将变化。

进一步的,为每一个应用程序页面在应用程序版本记录表中预制一条数据。

应用程序页面版本访问接口则包括:

建立应用程序页面脚本资源与应用程序页面的依赖关系具体过程为:

首先建立应用程序页面脚本资源表,该应用程序页面脚本资源表中包括脚本资源标识和脚本资源名称;

具体的,脚本资源定义表结构如下:

字段名称类型描述ResourceID脚本资源标识nvarchar(36)脚本资源的唯一标识符ResourceName脚本资源名称nvarchar(256)脚本资源文件名

将应用程序页面所使用的所有应用程序页面脚本资源预制到应用程序页面脚本资源表中,该应用程序页面脚本资源表包括依赖关系标识、应用程序页面标识和脚本资源标识;

应用程序页面脚本资源表结构如下:

字段名称类型描述ID依赖关系标识nvarchar(36)依赖关系的唯一标识符AppID应用程序页面标识nvarchar(36)应用程序页面唯一标识符ResourceID脚本资源标识nvarchar(36)脚本资源的唯一标识符

基于依赖关系标识、应用程序页面标识和脚本资源标识,建立应用程序页面与应用程序页面脚本资源的依赖关系。

应用程序页面脚本资源表存储应用程序页面和脚本资源间的多对多依赖关系。

脚本资源标识是唯一标识应用程序页面脚本资源的36位GUID,用来与应用程序页面建立关联关系;应用程序页面脚本资源名称记录了应用程序页面脚本资源文件的文件名。

进行应用程序页面更新部署包括以下步骤:

部署一个应用程序页面脚本资源文件时,根据应用程序页面脚本资源文件名,确定应用程序页面脚本资源的唯一标识符,即脚本资源标识;

根据应用程序页面的脚本资源标识,查找应用程序页面和脚本依赖关系,即查找依赖关系标识,然后取得需要更新的应用程序页面列表;

更新所有待更新的应用程序页面的页面版本。

应用程序页面脚本资源自动更新是指将页面版本表中的变化体现到页面上,更新具体的页面,其具体过程为:

访问应用程序入口页,发现被访问的页面版本发生变化;

分析页面引用的脚本资源,重新计算脚本资源引用地址的后缀,重新计算后,新部署的文件地址后缀发生变化,未更新的文件地址后缀不变;

完成页面更新,由应用程序入口页跳转到被访问页;

浏览器下载到更新的页面和脚本资源。

应用程序页面脚本资源自动更新遵循以下规则:

获取应用程序页面版本。

比较应用程序页面版本。

更新应用程序页面引用脚本资源地址。

所述的获取应用程序页面版本,其过程为,首先,获取数据库中此页面的最新页面版本。然后,在内存中查找此页面的内存版本,如果未得到页面的内存版本,则将服务器本地文件中存储的页面版本加载到内存中。再次查找此页面的内存版本,如果仍未得到页面的内存版本,则页面版本为空。

所述的比较应用程序页面版本,其过程为,如果页面版本不一致,将内存页面版本更新为页面最新版本,并同时更新服务器本地文件中存储的页面版本。

所述的更新应用程序页面引用脚本资源地址,其过程为,通过更新脚本资源引用地址的后缀,达到脚本资源重新部署后强制下载到浏览器端的效果。引用地址后缀由文件内容计算得出,文件内容无变化则后缀不变。

在上述技术方案中,应用程序页面脚本资源自动更新是指当浏览器访问应用程序页面时,更新过的脚本资源文件将及时下载到浏览器端。

在上述技术方案中,包含一个应用程序页面入口动态页面,浏览器访问应用程序页面时,先访问应用程序入口页面,再跳转到应用程序页面。应用程序入口页面通过Get方式接收应用程序页面ID,找到应用程序页面ID唯一标识的页面,完成页面更新后,跳转的此页面。

进一步,获取应用程序页面版本的具体过程为:首先,执行步骤(一)中的GetLatestVersion接口,获取数据库中此页面的最新页面版本。然后,在内存中查找此页面的内存版本,如果未得到页面的内存版本,则执行步骤(一)中的LoadAppVersionToMemery接口,将服务器本地文件中存储的页面版本加载到内存中。再次,查找此页面的内存版本,如果仍未得到页面的内存版本,则页面版本为空。

进一步,比较应用程序页面版本的具体过程为:比较内存页面版本和从数据库获取的页面最新版本是否一致,如果版本一致,说明页面及页面依赖的资源没有发生变化,直接跳转到应用程序页面;如果版本不一致,说明页面依赖的资源发生变化,需要确保更新的资源下载到浏览器端。将内存页面版本更新为页面最新版本,并同时更新服务器本地文件中存储的页面版本。

在上述步骤中,使用应用服务器上的本地文件记录页面版本,解决应用服务器重启或发生异常时,页面内存版本丢失的问题。避免因为内存版本丢失而出现页面版本不一致,从而导致脚本资源为发生变化却被强制下载到浏览器端的问题。

在上述技术方案中,进一步的,更新应用程序页面引用脚本资源地址具体过程为:更新应用程序页面引用脚本资源的URL地址。本发明通过更新脚本资源引用地址的后缀,达到脚本资源重新部署后强制下载到浏览器端的效果。

进一步,更新应用程序页面引用脚本资源的URL地址。本发明通过更新脚本资源引用地址的后缀,达到脚本资源重新部署后强制下载到浏览器端的效果。

更为详细的,更新应用程序页面引用应用程序页面脚本资源地址的过程为:

读取应用程序页面中引用的资源文件地址,分析提取文件路径,归集成文件路径数组。

遍历文件路径数组,逐个读取脚本资源文件内容,根据文件内容计算引用路径的后缀。本发明计算文件后缀的采用的方式为文本内容相同,计算出的文件后缀相同;文本内容不同,计算出的文件后缀不同。

使用文件路径数组和重新计算出的文件后缀,组成新的脚本资源文件引用地址,回写到应用程序页面中。

浏览器由应用程序入口页跳转到更新后的应用程序页面。

浏览器访问应用程序页面时,被更新文件的引用地址发生变化,从而该资源文件被强制下载。

如附图2所示,一种Web应用程序页面脚本资源自动更新的系统,包括:应用程序页面依赖资源维护模块,定义应用程序页面依赖的应用程序页面脚本资源,提供人机交互功能;应用程序更新部署模块,部署应用程序页面和应用程序页面脚本资源,确保新的资源及时更新。

应用程序页面依赖资源维护模块,用于预制应用程序页面标识,初始应用程序页面版本;录入应用程序页面使用的所有应用程序页面脚本资源;选择应用程序页面和应用程序页面脚本资源文件,两两建立依赖关系;

应用程序更新部署模块,按照应用程序部署目录建立应用程序更新包;生成应用程序页面脚本资源更新清单;部署应用程序页面脚本资源文件;根据文件部署清单更新应用程序页面版本;提供应用程序入口页面,在入口页面动态更新应用程序页面。

以下将通过一个具体实施例,使本发明的上述目标、特征和优点更加清晰、易懂。示例场景为,新版本的产品为所有报销单增加了上传报销凭证的功能,开发者需要进行一次产品更新,更新后确保所有用户都能获取到正确的更新。

实施步骤如下:

步骤一:开发者在应用程序页面版本表,应用程序页面脚本资源表,应用程序页面与应用程序页面脚本资源资源关系表中分别预制“手机费报销单.html”、“差旅费报销单.html”、“交通费报销单.html”、“业务招待费报销单.html”页面信息,“报销单基础服务.js”脚本文件信息,以及以上页面和“报销单基础服务.js”的依赖关系。

步骤二:将要更新的“报销单基础服务.js”和资源更新清单打包。资源更新清单格式如下:

步骤三:部署更新包,部署步骤为,将“报销单基础服务.js”文件复制到应用程序部署目录。读取资源更新清单,根据资源文件名,在应用程序页面脚本资源表中查找该资源的唯一标识符。使用应用程序页面脚本资源标识符查找应用程序页面与应用程序页面脚本资源资源关系表,获得需要更新页面版本的页面标识列表。根据页面标识列表,更新所有页面的页面版本。

系统更新后,用户访问“手机费报销单”页面时,本发明的处理过程如下。

首先,用户访问应用程序入口页面,在该页面中本发明监测到“手机费报销单”页面版本发生了更新。

然后,本发明启动应用程序页面脚本资源自动更新机制,自动更新“手机费报销单”页面应用程序页面脚本资源地址中的版本信息,完成“手机费报销单”页面的更新。

接着,应用程序入口页面跳转到“手机费报销单”页面。

最后,用户打开“手机费报销单”页面,该页面引用的“报销单基础服务.js”脚本文件被浏览器正确下载。

通过上面具体实施方式,所述技术领域的技术人员可容易的实现本发明。但是应当理解,本发明并不限于上述的具体实施方式。在公开的实施方式的基础上,所述技术领域的技术人员可任意组合不同的技术特征,从而实现不同的技术方案。

除说明书所述的技术特征外,均为本专业技术人员的已知技术。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号