Treebo基于React/Preact的PWA性能调优案例分析[译文]

Treebo是在印度名列前茅的连锁经济酒店,在200亿美元规模的旅游产业中占据了重要位置。他们最近发布了全新的、先后基于React和Preact构建的PWA(Progressive Web App,渐进式网页应用),为其客户提供移动端体验。

相比他们的上一代移动端网站,新PWA的白屏(First Paint)时间缩短了70%,可交互时间(Time-to-Interactive)缩短了31%,3G网络下加载时间短于4秒。在WebPageTest中模拟印度3G网络测试(译者按:在本文“由React切换至Preact”章节末尾介绍了测试详情),页面5秒内即可交互。

单从React更换为Preact这一项就为可交互时间贡献了15%的提升。你可以访问Treebo.com体验这一PWA,本文将着重介绍其技术演进的过程。 继续阅读“Treebo基于React/Preact的PWA性能调优案例分析[译文]”


ComicwindORG版黑客帝国 Chapter3

编者按:本系列最初发表于comicwind.org,貌似小说,实为对当时十分卖座的科幻影片《黑客帝国》的再创作。本文中所出现的角色均为作者本人或作者身边的朋友们,结合现实场景、电影情节、知名动漫游戏桥段——乃至作者当时对一些事情的看法,创作出了独特的世界观和无处不在的恶搞。

本系列目标读者群:

  • 曾看过电影《黑客帝国》I、II、III
  • 动漫爱好者
  • 游戏爱好者
  • Comicwind.org的原班人马

本系列共三章,下文为第三章,全系列完结。

 

Matrix_Revolutions_ver.Comicwind[原创]

ComicwindMatrix全系列连载完结!

Catalogue

Matrix ver.Comicwind(《黑客帝国》第一部,已完结)
Matrix Reloaded ver.Comicwind(《黑客帝国》第二部《重装上阵》,已完结)
Animatrix ver.Comicwind(《黑客帝国》动画版,放弃)
Enter The Matrix ver.Comicwind(《黑客帝国》游戏版《身临矩阵》,放弃)
Matrix Revolutions ver.Comicwind(《黑客帝国》第三部《革命》,本帖)

Section 1

陌生的地方,阴霾的天空,无人的街道,闪烁的路灯。
滚滚的乌云中,突然,打出一道巨大的闪电。
“轰隆!”雷声震耳欲聋。
放眼望去,
站在一座高楼楼顶的wlsasa被闪电击中了,变成了黑人,冒着烟,颤抖着。
wlsasa马上清醒过来,举起手机拨通了热线:
“时机到了,Revolution计划开始。”
然后她从楼顶上跌落下来。
太巧了,Spirit从楼底经过。
wlsasa砸在Spirit身上,然后从容的站了起来,毫发未损。
wlsasa回头看Spirit,
Spirit似乎很痛苦的倒在地上,
但他马上也站了起来,边说道:“习惯了。”
“谢谢。我们要抓紧跟上队伍。”wlsasa说。

Section 2

不远的地方。
我奔跑着,发疯似的喊道:
“franky,你在哪里?你给我出来!”
安静的街道上只有我的喊声和频繁的脚步声,
一座座大楼被甩到身后。

我停了下来,
在我面前30米处有一个人向我缓缓走来。
“franky?……不对!”
我一步冲上去,单手抓住对方的脖子,用力摔出去。
那个人撞碎了路旁商店的玻璃展窗,然后再不动了。

我一转头,
旁边街道上又走过来一个人。
“franky?这次是真的吗?”我不很确定。
“你在寻找什么?真实?”似乎是franky的人说。
“眼见就一定为实吗?不一定。”左边远处又出现了一个franky。
我有些惊慌。
“耳听就一定为虚吗?不一定。”右边远处又一个。
“意识是人对客观事物的主观反映,”又一个franky。
“不管正确的反映还是错误的反映,”又一个。
“都是你的意识。”
“主观的真实在你的意识中;”
“客观的真实不会由你妄想,”
“但可以由你来改变。”franky越来越多了。
我握紧的拳头中渗出了汗水。
“真实往往是残酷的,”
“如果承受不了真实,”
“就永远的沉浸在虚幻中吧。”
“我们会帮你。”
“让你永远躺在这个地方!”
数目可观的一群franky冲了上来。

我看形势不对,必须马上离开这里。
镜头突然变得很慢,
我缓缓的俯下身子,
作出要起跳的姿势。
franky们下意识的停了下来,摆出防御的架势。

“嗖”的一声,
我面前的下水道井盖被我掀飞了,
然后我跳了进去。

一片沉静。

“被他逃了。”为首的那个franky冷冷地说道。
“为什么不追?他又不是飞走的?”另一个franky。
“我们的人数还不足以抵挡接下来的进攻。我们要继续复制。”
“Lemon409博士发明的复制机真是厉害啊。”
“是啊,我们大家一摸一样呢。”
“据说那台机器还有把猪肉火腿还原成活生生的猪的功能……”
“咦?不是加工猪肉的功能吗?”
“嗯哼,你们是不是太水了点?……尤其是你,franky-18。”为首的franky阻止了这次灌水。

我在下水道中窃听了这些谈话,并通过手机转告给CRSG。

Section 3

CRSG带领阿姆罗、bbccren、忧郁的眼神、柳、thefacezy,
冲向一座黑色的大楼。
那座大楼在这一片区域中,是最高的一座。
他们半路上与Spirit、wlsasa会合。

CRSG接到我的电话后,示意大家放慢脚步,小心前进。

突然又是一支巨大的闪电,
“轰隆!”
wlsasa又被击中了,
她安然无恙的说:“习惯了。”

天空中下起了瓢泼大雨,在地上溅起了点点水花。
再加上乌云的低沉、高楼冰冷的色调、路灯没有一丝暖意的光,
整个场面都十分压抑。

果真,从黑色大楼的方向走来一群穿着黑色西装的Agent。
克隆franky们,人数相当的多!居中的应该是franky和Lemon409。
“这就是最后的最后了。”franky说道。
“当然,这次的计划是最后的计划,代号Revolution。”CRSG得意的说。
“喂,不用保密吗?”阿姆罗在旁边提醒CRSG。
“放心,这也是计划的一部分。”CRSG得意的笑。
“我可以给你们一个机会,1对1单挑,我们可以保证不会一拥而上的。”Lemon409的话抹去了CRSG的笑容。
“我们求之不得。”CRSG说。

“Round 1!Ready?Go!”Lemon409当起了裁判。
我方上场的是柳,敌方则派出了franky-58。
街道中央摆放了一张围棋棋盘,双方面对面坐在棋盘两侧。
柳举起了一枚棋子,
突然franky-58喊道:“不是红先黑后吗?为什么这里只有黑棋和白棋?棋子上怎么一个字都没有?……”
“你说的是中国象棋!”franky-57冲过来一拳把franky-58打飞,“我来!”
现场观众们谁都不会认为这是业余级的比赛,
双方决断迅速、落棋有声,
很快的,棋盘上的棋子便将近满了。
柳的嘴角流露出一丝笑意,她重重的落下一枚棋子。
franky-57的棋子有一大半都消失了。
franky-57在抬起头喘息的间隙,
惊异的看到,柳的背后浮现出一个人像,
那好像是一个叫做佐为的日本人,
而观众似乎并没有看到。
franky-57抱着头,向后倒去……
“KO!Winner is 柳!”Lemon409宣布了结果。

“Round 2!Ready?Go!”
我方:忧郁的眼神;敌方:franky-43。
franky-43对忧郁的眼神说:“你又不是Agent,戴什么墨镜?”
“那是因为我的眼睛是最具杀伤性的武器。”忧郁的眼神摘下了墨镜。
啊,他的眼睛上还戴着一个似乎是眼保健器似的仪器。
他用右手按了一下仪器侧面的按钮。
一道红光从仪器前端的窗口中发射出来。
“KO!Winner is 郁闷的眼神!啊,抱歉,错了,是忧郁的眼神!”Lemon409宣布了结果。
这简直是秒杀。

“Round 3!Ready?Go!”
我方:thefacezy;敌方:franky-21。
“哼哼,你可知道这句话?‘控制了时间就可以控制全世界。’”thefacezy的话让观众们一头雾水。
“我只知道:‘控制了篮板球就可以控制全世界。’”franky-21回敬道。
“是‘控制了篮板球就可以控制整个比赛’吧?”观众们嘀咕道。
“所以,我要用我的替身能力结束你!”thefacezy预告了胜利,“时间啊,停止吧!”
刹那间,雨停了,所有人都不动了。
thefacezy自言自语:“然后就……”
这时,观众中有人小声说道:“什么呀?吓人一跳……”
“啊?怎么会?……没停住吗?”thefacezy满头大汗。
“啧啧,真是失败的能力啊……”franky-21讽刺着。
“不对,你看,楼顶的时钟停了!是我做的!”thefacezy惊喜的发现。
“去死吧!噢啦噢啦噢啦噢啦噢啦噢啦噢啦噢啦噢啦!”franky-21一顿乱拳打飞thefacezy。
“KO!Winner is franky-21!”Lemon409宣布结果。

“Round 4!Ready?Go!”
我方:CRSG;敌方:franky-13。
CRSG:“还要我亲自出马。如果是打机器人的话我可以用‘血染东方一片红’那招,可惜对方是克隆人……”
“让我见识一下你的实力吧!”franky-13一个箭步冲过来,
他,一记左勾拳、右勾拳,嘴里还不停嘀咕:“一切惹毛我的人有危险……”
一阵痛打之后,franky-13感到一股寒意,赶紧跳出CRSG的攻击范围。
只见CRSG脸上青一块、紫一块,由于他眼睛在背光处,所以观众们看不清他的表情。
CRSG周身开始闪光,肌肉膨胀,
“哗”的一下,上身的衣服被肌肉撑得粉碎。
“来吧,中华三千年的秘传杀人拳——北斗神拳的最高奥义:无想转生!!!”CRSG的气势又高涨起来。
“太好了,我要让你知道我的南斗圣拳才是最强的拳法!”franky-13毫不示弱。
双方开打。
“北斗百裂拳!”
“南斗圣拳!”
“北斗揉破斩!”
“南斗圣拳!”
“北斗有情破翔拳!”
“南斗圣拳!”
“二指真空把!”
“南斗圣拳!”
“哈哈,还是我的招术名称比较丰富。”CRSG得意的说。
“先别高兴,看看你的胸前。”
CRSG突感胸前不适,七道血柱喷了出来。
观众们哗然,CRSG终于成为了胸前有七个排成北斗七星的伤疤的最强男人。
CRSG怕时间拖长自己会失血过多,所以集中所有力量,使出了最狠毒的招术。
“北斗十字伤!”
一道闪电,观众中的wlsasa再次被击中了,本已停止的暴雨又下了起来。
franky-13的胸前多了六个排成南斗六星十字架的伤口……
“KO!Winner is CRSG!”Lemon409宣布道。

“好了,我们已经累计胜利三场了。你们输了。”CRSG对franky说。
“没有理由吧?我们还有很多人。”franky冷冷的说道。
“原来,你一开始就没打算让我们活着?”
“你很聪明,但你们只是人类。”
“但我们在这个世界里升级了。”

混战开始了。

Section 4

话说另一边,我、苹果糖、穆、流水四人从相反方向向黑色大楼进发。
在阴森的街道上没遇到任何阻碍,我们进入了黑色大楼尾楼大厅。
在我们进入大厅们的同一时刻,外面的雨突然停了。
“见鬼,这雨怎么下的?”苹果糖抱怨老天爷。
“不知另一支队伍顺利吗?”流水说。
“我想不会太顺利的,那可是大部队。”我有些担心。
一声惊雷,雨又开始下起来。
“Let’s move!”我说。
“叫我干什么?”穆听错了……
“……”

来到第一扇门,很华丽、很有艺术气息的一道门。
门的正中是一张油画,内容是一只山羊。
“难道说……”穆似乎想起什么。
猛地一阵杀气袭来,金光一闪,我们甚至没有任何反应。
流水“啊!”的叫了一声。
我们再回头看流水,她已经不见了。

“是谁?!是谁干的?!流水去哪里了?”我们乱作一团。
“是我!现在我向你们宣告,你们还有十二个小时。”一个熟悉的身影闪了出来。
竟然是Wang_h_r!
“你背叛组织?”
“No,No,No,这只是一场游戏,”Wang_h_r目光冷冷的,但能看出一丝得意的神情。
“如果你们还想见到流水的话,那就必须在十二个小时内突破我身后的十二道门和十二位门将,”
“顺便说一句,我是好人星座的Wang_h_r,你们会在好人之门遭遇我——如果你们能到达的话……哈哈~~~”
说完他就消失了。

“肯定是他抓走了流水,看来我们只好继续前进了。”穆说。
走进第一道门,穆快走几步,转身面对我们,神秘的摆出了严肃的面孔。
“欢迎来到白羊之门,我是白羊星座的穆。”穆说出了惊人的事实。
“怎么?你要阻止我们前进吗?”苹果糖无奈的问道。
“我没理由阻止你们,只是你们的衣服是完全不适合接下来的战斗的。”穆的回答让我们松了口气。
“衣服?”
“刚才外边下雨,你们的衣服都湿了,这是绝对不行的!来,更衣室——”

我们三人来到第二道门,门上的油画画的似乎是天堂的景色。
我还在思考这道门的名字,门被推开了。
出来了一位女佣形象的中年女子,“请进~”
奇怪的是这位女子面部前面的空间成马赛克状,我们看不见对方的脸。
我们谨慎的进入第二个大屋。
大屋正中的沙发上端坐着一个男子,他正优雅的举着高脚酒杯,酒杯中的红酒似乎洋溢着血的腥味。
“欢迎来到后宫之门,我是后宫星座的阿当。”那个男人开口了,似乎有些法国腔。

后宫?
只见来来往往的全是女人,花花绿绿,各有特色,唯一的共同点是面部都打了马赛克。
“不要在意那些女人,你们来干什么?”阿当说道。
“如你所见,我们是……”我不知他为什么问一个答案如此明显的问题。
“法语是全世界最美丽的语言,”对方没让我说完。
“就连骂起人来都是如此的美丽。※×(%¥##◎!#¥『』……”我完全听不懂他在说什么,但我觉得这很有节奏感。
“周杰伦的《双节棍》。”香织突然出现了。
“不,是《忍者》才对。”FitE也出现了。
“谁让你们把真像说出来的……”阿当很郁闷。
我恍然大悟,怪不得有些耳熟。
然后他们三个撇下我们不管,吵了起来。

然后,经过超时空之门时,非我莫属跳出来,“天外飞仙!”穆和非我莫属一齐消失了。
经过好人之门时,Wang_h_r用连续下轻拳,与苹果糖陷入苦战。
我轻易的通过了剩下无人把守的门。

Section 5

放弃。

网友柳代写了BL版Scene 5。

Section 6

CRSG从小蛇手中接过刚刚作好的一串钥匙。
“虚幻时间结束了。我们终于可以回到现实世界了。”CRSG轻松的说。
“可是,我们在这个世界中是英雄……”我说。
“我知道你想说什么,你不想回去,是吗?”CRSG一下便点破我的心思,
“你应该想一想我们一直在为什么而奋斗。”
“为什么……我……也许是在寻找过程中的充实感吧。”我自己也不知道答案。

“现实也许是残酷的,”阿当开口了,“但只有现实中的幸福才是最真实的、最可贵的。”
“痛苦并不是现实的全部,关键是你能不能发现让自己愉悦的事情、关键是你自己的心态。”流水说。
“与其在虚幻中遍历充当肉垫的痛苦,倒不如现实中的痛苦更有挑战性。”Spirit说。
“就算在现实中真的没有快乐,我也要努力去寻找,因为这是生存的意义所在。”香织说。

“如果回到现实世界,大家还能见面么?”柳问道。
“放心,我们会经常回来看看的。”非我莫属说。
“就算不能再见,我们大家也拥有在珍贵、快乐的回忆。”FitE很肉麻啊。
“怎么会见不到,总会有机会的。”CRSG说。

“时间不早了,大家各自出发吧。”CRSG的声音很低。

每个人用自己的钥匙打开了各自的门。

“再见……”
“离开的时候,不要说再见,那会让人觉得悲伤……”穆说。

我走进门的一瞬间,
身后的景色像玻璃一样粉碎了,
缕缕的绿光划过我的侧脸。

光散开了,
我站在自己的寝室中,
一切恢复了原状。
我试着抬起右手,发力,
什么都没有发生,电视还在响着,播放着午间新闻;
我举起水杯,把杯中的水泼出来,
水没有在空中停住,洒到室友的背上,他对我大叫。

嗯,这就是现实了。
现实意味着什么呢?
我一边思考一边拎起书包,
向自习室走去。

路过中教楼,
看到了Spirit刚从自习室回来。
“自习啊?”Spirit寒暄道,似乎什么都未曾发生过一样。
“是,不能总是颓废啊~”我笑着说。
“7#楼人很多,去别的楼吧,……”

Spirit还没说完,
中教楼顶传来一阵剧烈的爆炸声。
“轰!!!~~”
我们马上抬头看,
是14楼爆炸了,
随着爆炸,从上面落下一些碎片和几个黑影……
“不好……”Spirit刚刚要躲,已经来不及了。

两个人砸到Spirit身上,
Spirit凄惨的倒在地上。
那两个人爬起来,拍拍身上的灰尘。
原来是franky和Autnight。

“哈哈,偶尔这样也很有趣啊。”

~Fin~

黑客帝国动漫风版系列连载结束——

谢谢大家的阅读和支持!


ComicwindORG版黑客帝国 Chapter2

编者按:本系列最初发表于comicwind.org,貌似小说,实为对当时十分卖座的科幻影片《黑客帝国》的再创作。本文中所出现的角色均为作者本人或作者身边的朋友们,结合现实场景、电影情节、知名动漫游戏桥段——乃至作者当时对一些事情的看法,创作出了独特的世界观和无处不在的恶搞。

本系列目标读者群:

  • 曾看过电影《黑客帝国》I、II、III
  • 动漫爱好者
  • 游戏爱好者
  • Comicwind.org的原班人马

本系列共三章,下文为第二章。

 

Matrix_Reloaded_ver.Comicwind[原创]

ComicwindMatrix全系列连载完结!

Catalogue

Matrix ver.Comicwind(《黑客帝国》第一部,已完结)
Matrix Reloaded ver.Comicwind(《黑客帝国》第二部《重装上阵》,本帖)
Animatrix ver.Comicwind(《黑客帝国》动画版,放弃)
Enter The Matrix ver.Comicwind(《黑客帝国》游戏版《身临矩阵》,放弃)
Matrix Revolutions ver.Comicwind(《黑客帝国》第三部《革命》,已完结)

Section 1

晚上,站在教7#四层窗口,有要跳下去的冲动。
具体是这样的:

向窗口处助跑,加速,
起跳,
身子水平前扑,
撞碎窗子的玻璃。

突然一切都变得很慢,
数不尽的玻璃碎片在身边闪烁,
我在抛物线最高点,
双手各持一把Uzi(“乌兹”小型冲锋枪)。

我从左侧翻转身体,
伸直的双臂摆向窗口的方向,
瞄准。

现在是仰面朝上,
开始下落,
开枪。

子弹向窗口倾泻而去,
我可以清晰看到子弹在空气中留下的近乎透明的轨迹。

从窗口中又跳出一个人,
穿着西装,戴着墨镜,
右手中拿着Desert Eagle(“沙漠之鹰”手枪)。

Agent!

他向我开枪射击了,
子弹从我的耳边划过。

子弹的轨迹,
飘落的玻璃碎片,
边下坠边开枪的两个人。
这景象充满了暴力的美感。

两个人都在下落,
而由于起跳时间不同,
我们的距离越来越远。

我很奇怪,
我Uzi的子弹打到Agent身上,
但那家伙完全没什么反应,
反而越来越冷静的来瞄准。

最致命的一颗子弹,
从他的枪膛中飞了出来,
中弹了!

楼下正好经过的Spirit中弹了,
当即倒在地上。

我也终于发现,
我的Uzi并不是没有效果:
效果一:增加了我自己下落的速度;
效果二:减少了Agent下落的速度;
效果三:打中了7#楼窗口围观的同学们。
受害者名单如下:阿当、thefacezy 、Wang_h_r、柳 、Lemon409、香织、wlsasa、阿姆罗、苹果糖、FitE、bbccren……

眼见我终于要落地了,
我想,
恐怕要摔成肉饼了……

说时迟,那时快,
远处主楼方向飞来一个人,
超人?
不是,
是Autnight。

他飞行的速度早已经超过了音速,
只见他飞过之处,
飓风席卷,
玻璃粉碎,
杂物乱飘,
路灯、汽车爆炸,
树木连根拔起……

我想,
有救了。

而我绝望的发现,
Autnight要救的目标不是我,
而是上面那个Agent。

我能感到的速度感突然消失,
我着地了……

我仰面朝天,
看到Autnight接住了Agent,
然后向上飞到了中教楼顶,
看不见了。

咦?
我还活着。
我感到自己躺在了某个软的物体上。

我爬起来,
发现,
地上的Spirit做了肉垫。

Spirit挣扎着说出最后一句话:
“Agent……
Franky……”
然后就没有动静了。

“Agent Franky?这是全名吗?”
我自言自语,不由的向上看了一眼。

“铃~~~”
3#教学楼的公共电话响了,
我知道必须离开这里,
离开这充满废墟的地方。

我飞奔过去,
接起电话。
眨眼间,
我消失了。

我一睁眼,
自习室已经没人了……
打扫卫生的清洁工对我说:
“同学,教室要关门了。”

我收拾好东西,
离开了自习室。
踏出门口时,
清洁工对我说:
“欢迎回到真实世界,
任务很成功,
我们确定了Agent的真名叫Franky,
而The One是和他们一伙的……”

Section 2

CRSG不知从那里冒了出来:“好了,托你们的福,我找到Key-maker了。”
原来在我身临险境、Autnight飞来飞去时,CRSG没有闲着。
我打量了一下Key-maker,原来是小蛇……

To be concluded…

第二部完,请进入Matrix Revolutions ver.Comicwind