童话说说技术创业美文职业
快好知
职业母婴
职场个人
历史治疗
笔记技能
美文纠纷
幽默家庭
范文作文
乐趣解密
创业案例
社会工作
新闻家居
心理安全
技术八卦
仲裁思考
生活时事
运势奇闻
说说企业
魅力社交
安好健康
传统笑话
童话初中
男女饮食
周易阅读
爱好两性

App开发:Hybrid架构下的HTML5应用加速方案

12月28日 桃花醉投稿
  在移动App开发领域,主流的开发模式可分为Native、Hybrid、WebApp三种方式。然而2013年,纯WebApp开发模式的发展受到一定挫折,以Facebook为代表的独立App转投Native阵营。但是开发者对WebApp更新速度快,跨平台优势的渴望却并未减弱,最终的结果是促成了HybridApp在2013年数量的激增,并且增长的速率非常之快。简单的说,HybridApp是NativeApp和MobileWeb二者混合开发的产物,HTML5的页面被嵌入到NatvieApp的webview中。因此它综合了更新速度快,交互体验好,跨平台等优点。
  本文分享的就是HTML5页面(尤其是被嵌入的H5应用)借助Hybrid架构来提升自己的加载速度和性能的一种解决方案。该方案要求你对HybridApp进行以下三步骤的改造:
  一:模块化你的H5页面应用,引入模块加载器(可选)
  模块加载器不必多说,SeaJS、requireJS、kissyloader等耳熟能详,任你挑选。使用模块化的方式来开发你的应用,不仅仅将有利于后期的代码维护,在Hrbrid的架构中,还将会有利于性能的提升。
  或许你有疑问:模块开发粒度越细化,加载时请求的JS、CSS等静态资源的数量越多,页面的性能不会越差吗?我的回答是:如果你仅仅是使用了模块加载器并异步加载各个模块,那么加载的性能一定很差,因为请求的数量太多。当然你肯定会想到在发布前打包合并静态资源,那么对这样的解决方案我只能给到50分,因为被打包合并的文件中只要有一个子文件发生变化,那么整个文件(JS或CSS)都要被重新下载,对移动带宽而言还是个负担。
  怎么破?请继续进行步骤二:
  二:启用AppCache,并引入增量更新机制
  做过WebApp的同学应该会了解文件,Html5提供的应用缓存功能,开发者只要把需被缓存的静态资源文件名罗列在这个列表中即可保证二次访问时无需重新加载。看起来不错!这样前面说的模块化开发造成的请求数量过多的问题,至少在二次访问时不会再发生了。嗯,这样的方案可以给到70分吧。其实,Html5提供的mainfest缓存机制有个比较大的问题(兼容性就先不提了):如果mainfest列表中的一个资源文件需要更新,那么整个mainfest中的其它文件也都需要被重新下载一遍。也即是说二次访问没有问题了,但是Html5应用更新时还是会出现全量下载的问题。
  别忘了,我们是HybridApp,还可以充分利用Native层的强大能力,所以抛弃mainfest吧,让Native来帮助Html5应用缓存静态资源文件。总体思路是:
  1、Html5应用首次启动时,调用Native提供的加载资源文件专用的DeviceAPI来请求所需的资源文件,由Native层发出真正的资源请求,并将请求结果缓存在手机的SD卡上。当然,这里完全可以优化为一次zip包请求,因为native能够提供强大的解压能力。
  2、H5应用再次启动时,所有的静态资源都是通过DeviceAPI读取本地缓存,无需再走网络。
  3、H5应用出现静态资源更新时,在应用启动时首先通过DeviceAPI加载需要更新的文件,并更新本地缓存,其它未变更文件继续走缓存。
  流程看起来挺顺,其中有几个关键问题需要解决:
  1、如何通过DeviceAPI加载资源文件?
  这里使用模块加载器的优势就体现出来了,只需要在加载器中做点小修改,不直接走Http请求了,而直接调用Native提供的文件加载DeviceAPI即可。如果你没有模块加载器,就需要写统一的函数来做加载资源的功能了。
  其实Native也提供了拦截机制,能够拦截到H5应用发出的所有Http请求并进行自定义处理,可惜这样好的功能在Andorid4。0以下版本不支持。故现阶段还是主动调用DeviceAPI更靠谱。
  2、如何知道需要进行资源的更新?
  每次静态资源发布都会产生一个唯一的发布时间戳(或是所有资源内容的MD5编码),H5应用启动后,可将当前时间戳保存下来,等应用下次启动时,请求最新的发布时间戳并与本地时间戳进行对比,若不同,则首先进行静态资源的增量更新。
  3、如何判断哪些是需要被增量更新替代的资源文件?
  这个问题的回答会比较复杂些,核心思路是通过对前后两次资源文件(js、css、image等)发布的内容对比完成:
  如此,H5应用借助Native应用的能力完成了资源的缓存与增量更新,可以保证H5应用在启动与更新时的加载速度。当然也有方案借助HTML5的localstorage来替代Native的缓存更新策略,但是会收到两点限制:
  1、若HybridApp比较复杂,涉及多个子域甚至主域的静态资源共享,则localstorage的方案在存储空间上有上限,是5M。
  2、N能够支持更新包的zip打包下载,一次请求,并解压覆盖本地缓存。localstorage无法实现。
  若应用可以忽略以上两点,使用localstorage缓存的策略完全ok。
  三:启用spdy协议
  协议在移动开发上大有可为,它是HTTP协议的增强版本,能够通过一次TCP链接同时请求到多个资源文件,请求速度上的提升那是自然的了,非常强大!等webkit内核浏览器都已经支持。可惜若是借助浏览器自身使用spdy协议则要求静态资源文件(js、css、image)必须是https的域名服务,且部署了支持spdy协议的后台server。相信大多数静态服务器都还是http服务,是无法通过浏览器来直接支持的。
  还是那句话,因为我们是hybrid应用,可以发挥native的优势!native层完全可以实现基于spdy协议请求的deviceAPI,供H5应用(JS)来调用。这样就不需要https域名服务器也能使用spdy了。
  如果你的Hybrid应用已经支持了spdy协议,那么你可以考虑不再需要把增量更新的资源文件打包成zip下载了,直接spdy协议并行下载即可!
  SPDY与HTTP协议速度对比:
投诉 评论 转载

通往服务之城的混合路径:超越日常服务设计技巧2009年,柏林一个以人为中心的产品和服务发展跨学科研究平台电信创新实验室创作中心(简称“创作中心”)对数字媒体互动中的行为守则展开研究。该实验室提出的“eEtiquette1……亲妈也要付费!如何拒绝“帮个忙”看到标题你有啥反应?当然了,如果真是亲妈来了,肯定要不辞劳苦的给她做的,这里只是一个夸张句,是针对那些总要你“帮个忙”的朋友的一句回应!相信当我们听到“免费”一词时有的人……腾讯广点通投放端V2。0设计总结项目背景广点通改版之前有三个投放端各自面向不同类型的客户,在用户日常使用过程中还是遇到很多问题,版本复杂,功能规划不统一,用户体验细节不佳,影响工作效率。同时,从内……重磅来袭!设计师不应该错过的响应式设计框架EthanMarcotte称响应式设计是基于网格建立一个网站。Marcotte定义这项技术后,响应式设计框架开始出现,主要是css和JavaScript的结合。许多框架都是开源……敢不敢做点用户真正愿意去买单的产品?你怎么确保你花时间设计的所有软件产品都让你的用户真正愿意去买单?你花几周时间去写代码实现一个好创意是一回事。但你确定你所编程出的产品有用户群么?最终你想做的事情就是创造些……又见乔布斯互联网产品设计关键点导语:话说梅头脑累得半死,也没开发出个像样的产品。这日,梅头脑正趴在办公桌上,忽然,梅头脑心目中的偶像乔布斯推门进来,告知:“小梅,我将互联网产品开发核心原则传授于你。”……想有好的用户体验?别忘了做错误反馈设计人非圣贤,孰能无过。互联网产品面向的用户群体是多种多样的,不同的教育背景,不同的行为习惯,这些都使得用户真实的操作和产品设计时的设想会出现一定的出入。近些年,随着移动互联……App开发:Hybrid架构下的HTML5应用加速方案在移动App开发领域,主流的开发模式可分为Native、Hybrid、WebApp三种方式。然而2013年,纯WebApp开发模式的发展受到一定挫折,以Facebook为代表的……APP启动页的价值和审美当应用程序被用户打开时,在程序启动过程中被用户所看到的过渡页面(或动画)都被我们统称为启动页。在我们的实际产品使用或是设计过程中,总是会有那么23秒是留给我们的产品启动页的。那……美团UED负责人专访:打造一流的设计团队1。先介绍下自己吧。大家好,我是美团UED的负责人薛靖,曾在腾讯CDC,网龙,飞信等公司负责过相关设计工作,还在设计学习的道路上摸索,很高兴有这样的机会与大家沟……李学凌玩教育,雷军在布局李学凌决定另起品牌做在线教育,这个并不令人惊讶。有视频、有大量用户、有支付体系的互联网公司,都会涉足在线教育。更何况,李学凌的YY不仅有视频,还是一个可以开房间、排……新颖O2O商业模式江水平和他的装修队江水平是我微信上的朋友,有一天他给我留言说,秦刚老师我觉得你应该采访我,因为我的商业模式非常新颖有趣,应该能够给很多创业者启发。我让江水平把他的商业模式写给我,他效率很高……
职场励志心得体会大学生初入职场的心得体会描写职场的句子职场正能量的语录经典职场正能量的语录38条简单的职场的语录职场的语录76条职场正能量的语录56条简短的职场正能量的语录职场心灵鸡汤语录职场的语录30条简短的职场的语录55条
就爱零食带着你的慧眼逛超市大数据时代“眼睛”无处不在,想保护个人信息?难!斯柯达不甘落后!全电动VISIONiV概念车亮相日内瓦单身母亲逆境理财  时间过得飞快,30年就这么过去了,我成了一名举世闻名的设计师,我的家乡运城,变得更加金碧辉煌!更加繁华!今天,我小张,带大家参观参观运城吧!我坐着法拉利陆空太阳能汽车到了城市中心,真是车山车海,这么多的车,尾气一定会污染环境的。不用怕,这些车的尾气其实是一种高科技的气体,它可以净化空气,这可多亏了我的好朋友松哥啊!这车多的也太惊人了吧,还是得启动飞行功能啦!车中有一个蓝色的按钮,一按,车的轮胎自动往下,还冒出蓝色的火花,不要瞧不起这些小火花,他们会利用气流的力量,把车子带到空中,一踩油门,车就往前飞。我们飞到南风广场,一座座高楼大厦,八星级酒店等等,对了,!我带你们去看看内部吧!首先,这座大楼是鑫源服装城。他和以前可不同哦,根本看不见他以前的影子,一进大门,一个惊人的场面扑入眼帘,商场里真可以用忽如一夜春风来,千树万树梨花开。来形容。商场里,有的叫百衣百顺有的叫有杯无患还有的叫百发百美等等。还有,要是晚上下班的时候,店主会让警察机器人来把守,以防小偷东西。女人应该放松点爱上自己的本色关于小孩子低度近视的一些问题小学三年级语文教学计划关于富有哲理的句子保湿乳和保湿霜的区别失恋后千万别做件傻事河北廊坊旧影

友情链接:中准网聚热点快百科快传网快生活快软网快好知文好找作文动态热点娱乐育儿情感教程科技体育养生教案探索美文旅游财经日志励志范文论文时尚保健游戏护肤业界