Web资源离线化和增量更新平台的设计与实现
发布时间:2020-05-08 14:39
【摘要】:随着互联网行业的高速发展,越来越多的企业开始希望实现软件产品的高速迭代,并且降低软件的开发成本。在这样的背景下Web App被越来越多的厂家所关注,Web App具有跨平台,更新灵活的优点。用户无论何时打开都可以访问到最新的版本,厂家无需维护多个版本的应用程序,极大的降低了开发成本和运维成本。但是由于Web App对网络的依赖高的特点,Web App的加载性能一直是一个短板,在Web App加载的过程中一般需要多次资源请求,如果用户的网络状况不佳例如延迟大、带宽低资源请求的时间就会大大加长,很多Web App在弱网的条件下无法满足用户需求。该平台主要瞄准网络这个限制Web App加载性能最大的短板,提出了一套全新的解决方案。利用离线化技术将用户使用的资源文件存在本地,在次访问页面时可以直接从缓存中读取资源,无需重新进行网络请求,大大减少了网络请求的数量。使用增量更新的方式在更新时只下载文件变动的部分,无需重新下载全量的文件减少对网络带宽的消耗。利用这两大核心技术减少Web App对于网络的依赖,同时减轻应用服务器的流量压力,使应用服务器的并发性能得到很大的提升。通过利用浏览器支持的缓存方式以及我们提供的资源缓存方案可以使缓存变得可控,相较于浏览器的缓存策略使用代码去控制缓存策略可以使Web App在不同的浏览器中达到一致的缓存效果,更加准确的判断缓存的有效性。用户可以针对性的缓存加载时需要的资源,当用户再次访问系统时就无需重新下载资源,大大的提高了页面的加载性能。同时增加了缓存的校验,提高了缓存的可靠性为增量更新提供了基础。通过构建资源管理平台可以对项目的历史资源进行系统化的管理,开发者可以通过可视化的操作界面或者命令行工具来管理自己的Web资源,并且可以将历史版本统一管理,让增量更新成为可能。当应用程序发生更新时,如果用户的缓存中有历史版本的缓存,用户只需要发送增量更新请求,增量更新后台服务会为用户计算升级到最新版本的补丁包,下载含有文件发生变化部分的补丁包即可完成更新,大大的降低了更新时的网络开销,降低了对网络的依赖,提高了缓存的利用率。该系统简单易用,开发者只需要简单的操作即可完成接入,对业务代码的侵入性极低,极大的降低了接入成本。接入后可以对Web应用程序的加载性能和更新速度起到极大的提升。本人在项目中主要完成了命令行工具、后台管理系统、离线化模块的Local Storage模块的开发以及智能预热模块的方案设计。最终该平台达到了设计的预期目标,但是该平台还有很多需要优化改进的地方,有待在日后的工作中改进。
【图文】:
Figure邋1-1邋Web邋App邋loading邋process逡逑(2)网络状况逡逑从前面的Web邋App加载过程可以看出Web邋App加载时的几个关键环节都是赖于网络。随着谷歌公司的V8引擎的出现以及硬件设备的日益升级目前Web引逡逑擎对于JavaScript的执行效率以及页面渲染效率己经非常高了[5],所以在Web邋Ap加载时间里网络加载时间一般占了绝大的部分。Web邋App通过网络下载资源的过逡逑程中会经过非常多的环节,任何一个环节出现抖动都会对网络的响应时间造成非逡逑常大的影响进而拉长页面加载的时间。逡逑在页面请求资源时首先浏览器会将资源的URL域名发送给DNS服务器。DNS服务器会把这个域名翻译成对应的IP地址。查询到IP地址后DNS将域名所对的IP地址发送给浏览器。浏览器通过IP地址与服务器三次握手建立TCP链接。逡逑通过TCP链接浏览器发送HTTP请求,请求Web邋App中的各个资源,,最后服务返回浏览器请求的资源[6]。具体请求过程如图1-2所示。逡逑服务逡逑
下载JS文件逡逑c加载完成)逡逑图1-1邋Web邋App加载过程逡逑Figure邋1-1邋Web邋App邋loading邋process逡逑(2)网络状况逡逑从前面的Web邋App加载过程可以看出Web邋App加载时的几个关键环节都是依逡逑赖于网络。随着谷歌公司的V8引擎的出现以及硬件设备的日益升级目前Web引逡逑擎对于JavaScript的执行效率以及页面渲染效率己经非常高了[5],所以在Web邋App逡逑加载时间里网络加载时间一般占了绝大的部分。Web邋App通过网络下载资源的过逡逑程中会经过非常多的环节,任何一个环节出现抖动都会对网络的响应时间造成非逡逑常大的影响进而拉长页面加载的时间。逡逑在页面请求资源时首先浏览器会将资源的URL域名发送给DNS服务器。DNS逡逑服务器会把这个域名翻译成对应的IP地址。查询到IP地址后DNS将域名所对应逡逑的IP地址发送给浏览器。浏览器通过IP地址与服务器三次握手建立TCP链接。逡逑通过TCP链接浏览器发送HTTP请求,请求Web邋App中的各个资源,最后服务器逡逑返回浏览器请求的资源[6]。具体请求过程如图1-2所示。逡逑服务逡逑服务器域名逡逑服务器IP逡逑TCP三次握手/逡逑/邋Y逦邋SYM=L邋seq=x邋逦^邋资'逡逑浏邋>—SYN=1,邋ACK=1,邋seq=y;邋ACKnum=x+l邋—^源逡逑览逦ACK=1,邋ACKnum=y+l邋逦^邋月艮逡逑器
【学位授予单位】:北京交通大学
【学位级别】:硕士
【学位授予年份】:2019
【分类号】:TP311.56;TP393.09
本文编号:2654804
【图文】:
Figure邋1-1邋Web邋App邋loading邋process逡逑(2)网络状况逡逑从前面的Web邋App加载过程可以看出Web邋App加载时的几个关键环节都是赖于网络。随着谷歌公司的V8引擎的出现以及硬件设备的日益升级目前Web引逡逑擎对于JavaScript的执行效率以及页面渲染效率己经非常高了[5],所以在Web邋Ap加载时间里网络加载时间一般占了绝大的部分。Web邋App通过网络下载资源的过逡逑程中会经过非常多的环节,任何一个环节出现抖动都会对网络的响应时间造成非逡逑常大的影响进而拉长页面加载的时间。逡逑在页面请求资源时首先浏览器会将资源的URL域名发送给DNS服务器。DNS服务器会把这个域名翻译成对应的IP地址。查询到IP地址后DNS将域名所对的IP地址发送给浏览器。浏览器通过IP地址与服务器三次握手建立TCP链接。逡逑通过TCP链接浏览器发送HTTP请求,请求Web邋App中的各个资源,,最后服务返回浏览器请求的资源[6]。具体请求过程如图1-2所示。逡逑服务逡逑
下载JS文件逡逑c加载完成)逡逑图1-1邋Web邋App加载过程逡逑Figure邋1-1邋Web邋App邋loading邋process逡逑(2)网络状况逡逑从前面的Web邋App加载过程可以看出Web邋App加载时的几个关键环节都是依逡逑赖于网络。随着谷歌公司的V8引擎的出现以及硬件设备的日益升级目前Web引逡逑擎对于JavaScript的执行效率以及页面渲染效率己经非常高了[5],所以在Web邋App逡逑加载时间里网络加载时间一般占了绝大的部分。Web邋App通过网络下载资源的过逡逑程中会经过非常多的环节,任何一个环节出现抖动都会对网络的响应时间造成非逡逑常大的影响进而拉长页面加载的时间。逡逑在页面请求资源时首先浏览器会将资源的URL域名发送给DNS服务器。DNS逡逑服务器会把这个域名翻译成对应的IP地址。查询到IP地址后DNS将域名所对应逡逑的IP地址发送给浏览器。浏览器通过IP地址与服务器三次握手建立TCP链接。逡逑通过TCP链接浏览器发送HTTP请求,请求Web邋App中的各个资源,最后服务器逡逑返回浏览器请求的资源[6]。具体请求过程如图1-2所示。逡逑服务逡逑服务器域名逡逑服务器IP逡逑TCP三次握手/逡逑/邋Y逦邋SYM=L邋seq=x邋逦^邋资'逡逑浏邋>—SYN=1,邋ACK=1,邋seq=y;邋ACKnum=x+l邋—^源逡逑览逦ACK=1,邋ACKnum=y+l邋逦^邋月艮逡逑器
【学位授予单位】:北京交通大学
【学位级别】:硕士
【学位授予年份】:2019
【分类号】:TP311.56;TP393.09
【参考文献】
相关期刊论文 前10条
1 章斓;;基于HTML5的Web App的开发与探索[J];长沙大学学报;2015年05期
2 段虎才;倪宏;邓峰;胡琳琳;;WebKit内核的嵌入式浏览器磁盘缓存方法[J];计算机工程与设计;2015年03期
3 秦云霞;;试谈Go语言的面向对象技术[J];电脑编程技巧与维护;2014年24期
4 顾春来;;APP应用程序开发模式探究[J];硅谷;2014年05期
5 胡晟;;浅析Cookies认证机制及其安全性[J];计算机与网络;2012年05期
6 李云云;;浅析B/S和C/S体系结构[J];科学之友;2011年01期
7 佘丹娴;;内容分发网络(CDN)的发展与应用[J];中山大学研究生学刊(自然科学、医学版);2006年01期
8 陈芬;;浅析网络Cookie[J];电脑知识与技术;2005年35期
9 宋家友,桑红涛;CDN技术的发展及应用[J];电视技术;2005年06期
10 徐健,王涛;HTTP/1.1的分析[J];西南师范大学学报(自然科学版);2004年02期
本文编号:2654804
本文链接:https://www.wllwen.com/guanlilunwen/ydhl/2654804.html