0

    Web资源离线化和增量更新平台的设计与实现

    2023.07.05 | admin | 130次围观

    【摘要】:随着互联网行业的高速发展,越来越多的企业开始希望实现软件产品的高速迭代依赖包的资源没有加载,并且降低软件的开发成本。在这样的背景下Web App被越来越多的厂家所关注,Web App具有跨平台,更新灵活的优点。用户无论何时打开都可以访问到最新的版本,厂家无需维护多个版本的应用程序,极大的降低了开发成本和运维成本。但是由于Web App对网络的依赖高的特点,Web App的加载性能一直是一个短板,在Web App加载的过程中一般需要多次资源请求,如果用户的网络状况不佳例如延迟大、带宽低资源请求的时间就会大大加长,很多Web App在弱网的条件下无法满足用户需求。该平台主要瞄准网络这个限制Web App加载性能最大的短板,提出了一套全新的解决方案。利用离线化技术将用户使用的资源文件存在本地,在次访问页面时可以直接从缓存中读取资源,无需重新进行网络请求,大大减少了网络请求的数量。使用增量更新的方式在更新时只下载文件变动的部分,无需重新下载全量的文件减少对网络带宽的消耗。利用这两大核心技术减少Web App对于网络的依赖,同时减轻应用服务器的流量压力,使应用服务器的并发性能得到很大的提升。通过利用浏览器支持的缓存方式以及我们提供的资源缓存方案可以使缓存变得可控,相较于浏览器的缓存策略使用代码去控制缓存策略可以使Web App在不同的浏览器中达到一致的缓存效果,更加准确的判断缓存的有效性。

    用户可以针对性的缓存加载时需要的资源,当用户再次访问系统时就无需重新下载资源,大大的提高了页面的加载性能。同时增加了缓存的校验,提高了缓存的可靠性为增量更新提供了基础。通过构建资源管理平台可以对项目的历史资源进行系统化的管理,开发者可以通过可视化的操作界面或者命令行工具来管理自己的Web资源,并且可以将历史版本统一管理依赖包的资源没有加载,让增量更新成为可能。当应用程序发生更新时,如果用户的缓存中有历史版本的缓存,用户只需要发送增量更新请求,增量更新后台服务会为用户计算升级到最新版本的补丁包,下载含有文件发生变化部分的补丁包即可完成更新,大大的降低了更新时的网络开销,降低了对网络的依赖,提高了缓存的利用率。该系统简单易用,开发者只需要简单的操作即可完成接入,对业务代码的侵入性极低,极大的降低了接入成本。接入后可以对Web应用程序的加载性能和更新速度起到极大的提升。本人在项目中主要完成了命令行工具、后台管理系统、离线化模块的Local Storage模块的开发以及智能预热模块的方案设计。最终该平台达到了设计的预期目标,但是该平台还有很多需要优化改进的地方,有待在日后的工作中改进。

    版权声明

    本文仅代表作者观点。
    本文系作者授权发表,未经许可,不得转载。

    发表评论