首页
|
新闻
|
新品
|
文库
|
方案
|
视频
|
下载
|
商城
|
开发板
|
数据中心
|
座谈新版
|
培训
|
工具
|
博客
|
论坛
|
百科
|
GEC
|
活动
|
主题月
|
电子展
注册
登录
论坛
博客
搜索
帮助
导航
默认风格
uchome
discuz6
GreenM
»
MCU 单片机技术
»
ARM
» 基于 Struts2 标签的 BigPipe 技术实现(3)
返回列表
回复
发帖
发新话题
发布投票
发布悬赏
发布辩论
发布活动
发布视频
发布商品
基于 Struts2 标签的 BigPipe 技术实现(3)
发短消息
加为好友
look_w
当前离线
UID
1066743
帖子
8283
精华
0
积分
4142
阅读权限
90
在线时间
233 小时
注册时间
2017-6-23
最后登录
2019-5-18
论坛元老
UID
1066743
1
#
打印
字体大小:
t
T
look_w
发表于 2018-9-23 14:10
|
只看该作者
基于 Struts2 标签的 BigPipe 技术实现(3)
多线程方式不管是单线程还是普通实现方式,它们加载页面所需的总时间没有减少,对于非常大的页面,缩短加载时间才是最重要的,那么就可以使用本文介绍的多线程 BigPipe 技术了。多线程实现方式与 Facebook 的实现方式基本一致,在本文的例子中,将每个单元格视为一个 PageLet,每个 PageLet 的内容交给单独的线程进行生成和处理,也就是说,六个 PageLet 的内容并行处理,无需按照文档流顺序进行处理。我们打开 http://localhost:{your port}/BigPipeImpl/multi.action, 我们再次查看页面的内容加载时间,结果如图 6 所示。
图 6. 多线程实现方式的加载时间()
看到了吗?总共的加载时间变为了 6 秒,是不是很神奇,针对本文的例子,提高了 3 倍多,同时也只在一个请求内完成(另外两个请求是请求 JavaScript 文件和图片文件的)。而实际上,这个 6 秒,是加载时间最长的 PageLet 所需要的时间,因为各个 PageLet 的加载是并行的,页面加载时间以最晚的那个 PageLet 为准。本文例子的加载原理如图 7 所示。
图 7. 多线程 BigPipe 原理
可以看到,六个单元格并行加载,整个页面的加载时间由最长的单元格 6 决定。按照图 7 的分析,单元格是按照 1-6 的顺序显示,同时每个单元格之间相差接近 1 秒。经验证,单元格显示的顺序的确是 1-6,结果如图 8 所示。
图 8. 多线程显示结果()
在每个单元格(也就是 PageLet)显示出内容的瞬间,Firebug 的网络监控部分,就会显示出当时网页所消耗的时间,结果如图 9 所示。
图 9. 每个 PageLet 显示的时间
可以看到,每个 PageLet 的显示间隔正好一秒,与 的分析完全一致。这也证实了多线程加载 PageLet 的实现是正确的。
多种实现方式的对比从以上的示例展示和结果分析,不难看出普通实现方式、单线程 BigPipe、多线程 BigPipe 以及 Ajax 之间的差异,我们不防用一个表格来展示,对比结果如表 1 所示,注意:我们使用本文的示例程序作为评价背景,因为对于不同网页有可能出现不同的结果。
表 1. 四种实现方式对比
类型
请求数
服务器端压力
用户体验
网页加载速度
模块加载顺序
实现难度
普通 1 小差慢文档流顺序简单 Ajax 多大好快不确定困难单线程 BigPipe 1 小好慢自定义一般多线程 BigPipe 1 一般(线程池引起)好最快不确定最困难
针对本文的例子,给出了上表的评价结果,这些结果并不是绝对的,它是针对网页较大、内容模块较多情况下给出的结果,从中可以很容易看出各个实现方式的差异所在。读者可以从中找到符合自己需求的实现方式。
收藏
分享
评分
回复
引用
订阅
TOP
返回列表
电商论坛
Pine A64
资料下载
方案分享
FAQ
行业应用
消费电子
便携式设备
医疗电子
汽车电子
工业控制
热门技术
智能可穿戴
3D打印
智能家居
综合设计
示波器技术
存储器
电子制造
计算机和外设
软件开发
分立器件
传感器技术
无源元件
资料共享
PCB综合技术
综合技术交流
EDA
MCU 单片机技术
ST MCU
Freescale MCU
NXP MCU
新唐 MCU
MIPS
X86
ARM
PowerPC
DSP技术
嵌入式技术
FPGA/CPLD可编程逻辑
模拟电路
数字电路
富士通半导体FRAM 铁电存储器“免费样片”使用心得
电源与功率管理
LED技术
测试测量
通信技术
3G
无线技术
微波在线
综合交流区
职场驿站
活动专区
在线座谈交流区
紧缺人才培训课程交流区
意见和建议