基于Bigpipe与Node.js的Web框架的设计与实现
发布时间:2021-03-07 12:28
随着网页技术的快速发展,网页内容不断增多,网页功能也变得更加丰富全面,然而网页HTML、静态资源体积也随之变大,网页内容生成时间随之变长,这使得网页加载速度减缓,严重影响了用户体验。同时目前主流的网页加载方案(服务器端渲染与异步加载渲染)中,在服务器端返回数据之前浏览器和网络均处于空闲状态,存在着较为明显的优化空间。Bigpipe加载方案借助于CPU流水线的思想,将页面拆分为多个页面分块(Pagelet),每当服务器端生成好Pagelet的内容,就借助分块传输编码将Pagelet传给浏览器端,使得服务器、网络、浏览器流水线式工作,是对现有方案的良好改进。然而Bigpipe方案中由于JavaScript和CSS也需要拆分,导致HTTP请求数大量增加。Node.js是近年兴起的服务器端JavaScript运行环境,性能出众,且涌现了较多优秀的静态资源打包方案,论文认为Node.js平台是较为合适的Bigpipe方案实现和改进平台。为利用Bigpipe方案优化目前的网页加载过程,同时考虑到Bigpipe对编程模式存在诸多要求、需以框架形式进行实现,因此本文提出了一种基于Node.js平台、实...
【文章来源】:北京邮电大学北京市 211工程院校 教育部直属院校
【文章页数】:73 页
【学位级别】:硕士
【部分图文】:
B堪P}Pe方案与传忱方案的时kLPQ]
??3.多个异步操作串行执行过程需使用递归。图2-3中明确每个异步操作都??是确定的,故将多个异步回调嵌套即可实现整体的串行执行,但如果存在运行时??才能确定的串行操作,例如一个数组中存储了所需要执行的所有串行操作,要想??实现数组中所有操作的连续执行就需要使用递归等编程技巧。对比而言,非回调??式的同步代码直接使用for/while循环便可简单实现连续执行。异步回调中必须??引入的递归使得代码可读性一定程度上降低。??故对于一种Nodejs平台的Web框架,提供合理的CallbackHell解决方案不??仅为开发者编程开发带来较多便利,同时也利于框架本身的开发,便于梳理框架??自身逻辑。??2.2.2?Callback?Hell?解决方案??目前Nodejs平台的Callback?Hell解决方案以下三个:??1.?Promise??Promise方案最初由开源社区提出,并在jQuery、Bluebird、Q等前端开源库??中实现,后由ES6官方规范进行实现。Promise方案核心是Promise对象,每个??Promise对象都包含pending、fulfilled和rejected三种状态。同时提供了对应API??用于绑定首次切换到上述状态时将会执行的回调函数
不同于Express对Middleware的处理,koa中Middle内层Middleware嵌套在外层Middleware当中。执行过程当中are的逻辑优先执行,然后由其控制何时进入内层Middleware,并ddleware执行结束后再回到外层的Middleware递归向上执行。的执行流程,koa的Middleware模型使得执行顺序靠前的MiddleMiddleware执行结朿时追加其他处理逻辑的能力。??凭借着优异的Middleware执行模型,在提出后获得了迅速的推间较短,其Middeware库数量及完备度上不及Express。??两种框架都只是提供了?Middleware执行模型以及基础的Web?S更多的功能诸如MVC(Model?View?Controller)模型、数据库对象社区有较为成熟的Middeware实现,但是都不包含在框架本身合自身需求引入或自行实现。??型Web框架??主流应用型Web框架为阿里巴巴公司推出的Egg.js与Th推出的Sails框架。??
【参考文献】:
期刊论文
[1]Web页面加载方式研究分析与优化[J]. 徐世武,严玉姣. 计算机应用与软件. 2015(11)
[2]基于Node.js的JavaScript并发控制流框架[J]. 李轶. 江汉大学学报(自然科学版). 2015(02)
[3]基于J2EE核心模式的组合Web框架研究[J]. 曾亮,齐欢,王小平,陈迎春. 华中科技大学学报(自然科学版). 2007(06)
博士论文
[1]移动Web浏览系统的若干关键技术研究[D]. 张开敏.中国科学技术大学 2012
硕士论文
[1]WEB系统前端性能优化方法研究[D]. 李雨晨.湖南大学 2013
[2]Web前端性能优化的研究与应用[D]. 张紫微.电子科技大学 2010
本文编号:3069092
【文章来源】:北京邮电大学北京市 211工程院校 教育部直属院校
【文章页数】:73 页
【学位级别】:硕士
【部分图文】:
B堪P}Pe方案与传忱方案的时kLPQ]
??3.多个异步操作串行执行过程需使用递归。图2-3中明确每个异步操作都??是确定的,故将多个异步回调嵌套即可实现整体的串行执行,但如果存在运行时??才能确定的串行操作,例如一个数组中存储了所需要执行的所有串行操作,要想??实现数组中所有操作的连续执行就需要使用递归等编程技巧。对比而言,非回调??式的同步代码直接使用for/while循环便可简单实现连续执行。异步回调中必须??引入的递归使得代码可读性一定程度上降低。??故对于一种Nodejs平台的Web框架,提供合理的CallbackHell解决方案不??仅为开发者编程开发带来较多便利,同时也利于框架本身的开发,便于梳理框架??自身逻辑。??2.2.2?Callback?Hell?解决方案??目前Nodejs平台的Callback?Hell解决方案以下三个:??1.?Promise??Promise方案最初由开源社区提出,并在jQuery、Bluebird、Q等前端开源库??中实现,后由ES6官方规范进行实现。Promise方案核心是Promise对象,每个??Promise对象都包含pending、fulfilled和rejected三种状态。同时提供了对应API??用于绑定首次切换到上述状态时将会执行的回调函数
不同于Express对Middleware的处理,koa中Middle内层Middleware嵌套在外层Middleware当中。执行过程当中are的逻辑优先执行,然后由其控制何时进入内层Middleware,并ddleware执行结束后再回到外层的Middleware递归向上执行。的执行流程,koa的Middleware模型使得执行顺序靠前的MiddleMiddleware执行结朿时追加其他处理逻辑的能力。??凭借着优异的Middleware执行模型,在提出后获得了迅速的推间较短,其Middeware库数量及完备度上不及Express。??两种框架都只是提供了?Middleware执行模型以及基础的Web?S更多的功能诸如MVC(Model?View?Controller)模型、数据库对象社区有较为成熟的Middeware实现,但是都不包含在框架本身合自身需求引入或自行实现。??型Web框架??主流应用型Web框架为阿里巴巴公司推出的Egg.js与Th推出的Sails框架。??
【参考文献】:
期刊论文
[1]Web页面加载方式研究分析与优化[J]. 徐世武,严玉姣. 计算机应用与软件. 2015(11)
[2]基于Node.js的JavaScript并发控制流框架[J]. 李轶. 江汉大学学报(自然科学版). 2015(02)
[3]基于J2EE核心模式的组合Web框架研究[J]. 曾亮,齐欢,王小平,陈迎春. 华中科技大学学报(自然科学版). 2007(06)
博士论文
[1]移动Web浏览系统的若干关键技术研究[D]. 张开敏.中国科学技术大学 2012
硕士论文
[1]WEB系统前端性能优化方法研究[D]. 李雨晨.湖南大学 2013
[2]Web前端性能优化的研究与应用[D]. 张紫微.电子科技大学 2010
本文编号:3069092
本文链接:https://www.wllwen.com/guanlilunwen/ydhl/3069092.html