冯森林:手机淘宝中的那些Web技术
2019独角兽企业重金招聘Python工程师标准>>>
Native APP与Web APP的技术融合已经逐渐成为一种趋势,使用标准的Web技术来开发应用中的某些功能,不仅可以降低开发成本,同时还可以方便的进行功能迭代更新。但是如何保证Web APP的流畅性也一直是业内讨论的热点。InfoQ此次专访了手机淘宝客户端高级技术专家冯森林来谈谈手机淘宝在Web技术方面的一些实践经验,另外作为ArchSummit深圳2014大会《移动互联网,一浪高过一浪》专题的讲师,冯森林将会分享手机淘宝的客户端架构探索之路。
InfoQ:淘宝手机客户端是否使用了HTML5技术?能简单介绍下吗?
冯森林:手机淘宝大量使用了Web技术,但对于HTML5,由于兼容性的要求,我们相对比较保守,使用到的特性并不多。主要是一些与触屏体验相关的HTML5特性,大部分运用在基础JS库中,业务开发直接使用的场景不多。优点在于可以更好的支持一些优化的体验,充分发挥新技术优势和移动端独有的能力。缺点也很明显,兼容性上需要考虑较多的适配问题。
InfoQ:我们知道Web页面与原生的页面在性能上还是有很大差距的,手机淘宝是如何处理Web页面的体验瓶颈的?
冯森林:通过使用缓存技术,可以在再次加载页面(及用到的资源)时避免缓慢和不可靠的网络请求,从本地缓存加载基本可以做到即时完成,接近于原生应用的加载体验。为了解决首次加载,我们在缓存机制的基础上引入了预缓存机制(采用与AppCache一致的协议),提前将需要的页面及资源缓存到本地,即使在用户首次打开时,也相当于打开已经缓存过的页面。
InfoQ:在Web页面中不可避免的会调用一些Native的功能,手机淘宝是如何实现的?
冯森林:我们采取了类似于PhoneGap的实现(但更轻量级),在Android和iOS两个平台上分别实现了JsBridge,在JavaScript的命名空间内创建可映射到native对象的代理。并在业界通行的实现基础上,我们还加入了一些安全增强和保护机制,封堵常见的JS注入漏洞。
InfoQ:看来手机淘宝在HTML页面方面做了大量的技术投入,能分享下你们的经验吗?
冯森林:其实,无论是缓存还是网络方面的优化,都是在传统Web开发领域内已经相对成熟的实践。在App内,由于我们所能掌控的部分大幅度的下移,能影响一部分以往受制于浏览器实现的技术层次,所以可以在这两方面做的更多更深入。但是兼容Web的既有标准和实践是我们做这些优化的基本前提,比如使用AppCache协议支持预缓存,这样有助于前端技术和实践的跨平台兼容和复用。
InfoQ:淘宝自己实现的WebView 缓存机制模块同时兼容iOS 和 Android吗? 能否具体讲一下大概的实现思路?图片缓存有特殊处理吗?
冯森林:是的,在两个平台上,我们都采用了相似的实现。实现思路上完全参照标准的HTTP Cache-Control协议,在一些特定的场景下使用ETag。图片与API采用一致的缓存实现,唯服务端的缓存策略配置不同而已。
InfoQ:手机淘宝开发Web页面时有没有用到过一些开源框架?如果有自研框架,是否考虑开源?
冯森林:手机淘宝中使用到的大部分是前端业界成熟的开源框架,如JQuery、Mustache,也有一些我们自己构建的框架,如已经开源的Kissy。基本上,除了对接私有设计的框架之外,我们都优先考虑使用成熟的开源项目,并且将我们的补充反馈给开源社区。
InfoQ:淘宝对安全性要求很高,请问在Web与Native交互的过程中,是否进行过一些加密和其它的处理?
冯森林:Web与Native的交互,本身还是受到OS安全性保护的。无论在Android还是iOS下,这都是App内部的通信通道,因此在非越狱/ROOT的设备上不存在已知的安全风险。由于越狱和ROOT在国内环境中的普遍性,所以在安全问题上,我们整体性的策略是将整个客户端视同安全藩篱较低的终端,从云端通信及行为分析上去强化安全保护。比如我们已经在Web容器中加入的『人机识别』模块,可有效识别各种利用Web页面和接口进行的自动『刷XX』行为。
转载于:https://my.oschina.net/bufenye/blog/526864
冯森林:手机淘宝中的那些Web技术相关推荐
- 手机淘宝双11全球狂欢节技术解读
手机淘宝 双11全球狂欢节技术解读 2015双11全球狂欢节全天交易额912.17亿元!无线成交626.42亿元!无线占比68.67%!--这是消费的力量,是新经济的力量,是我们每一个人的力量,更是中 ...
- 手机淘宝构架演化实践及优化,天猫,淘宝服务
> 天猫App 安全模式:天猫App启动保护实践- https://mp.weixin.qq.com/s?__biz=MzUxMzcxMzE5Ng==&mid=2247488429&am ...
- 手机淘宝提升排名的主要权重!!
无线端是未来,各位大佬们疯狂砸钱不会是无缘无故的,生活在资本市场的社会里,方向很重要,思维很重要,看看身边的朋友们,是不是一个个一天天抱着手机,看小说,看视频,玩游戏,听音乐,刷微信,想一下,身边朋友 ...
- 电商客户端竞品分析-手机淘宝、京东、唯品会、聚美优品
市场状况 艾瑞最新统计数据显示,2013年移动网购整体交易规模1676.4亿元,同比增幅高达165.4%,而同期PC端网购规模将近16000多亿元,同比增速35.7%.预计2017年市场规模将近万亿, ...
- 如何利用SEO优化技巧做手机淘宝产品的排名
在今年的双十一活动中,淘宝双十一购物狂欢节总交易额高达571亿,无线端贡献243亿,占比42.6%,去年无线端占比为15.3%,增长速度几乎为两倍,这是一组让人惊奇而耐人寻味的数字,它又意味着手机淘宝 ...
- 求一个手机淘宝直播中抢购的脚本,急
要求,手机淘宝直播中不管上架什么东西,我都是第一个购买成功的! 天灵灵地灵灵,太上老君急急如律令,大神来>o<
- 手机淘宝的客户端架构探索之路
本文转自:http://blog.csdn.net/licaomengrice/article/details/49253255 主讲人:冯森林(无锋/ Oasis Feng) 产品挑战 淘宝手机客户 ...
- Android热补丁技术—dexposed原理简析(手机淘宝采用方案)
上篇文章<Android无线开发的几种常用技术>我们介绍了几种android移动应用开发中的常用技术,其中的热补丁正在被越来越多的开发团队所使用,它涉及到dalvik虚拟机和android ...
- 当手机淘宝遇见海尔电商
该文章来自阿里巴巴技术协会(ATA)精选集 7月的青岛,向来是旅游胜地.手机淘宝技术团队收到海尔的邀请,展开了一场别开生面的技术之旅,阿里无线事业部(手机淘宝)资深总监南天也应邀在[海尔电商技术沙龙] ...
最新文章
- oracle group by用法
- insertion Sort List (链表的插入排序) leecode java
- 关于java类型数据组的调用
- linux tail 命令,Linux tail命令的巧妙应用
- 专家解读EdgeRoutine边缘程序
- My Lead route attach and detach issue
- Java并发教程–信号量
- 【H.264/AVC视频编解码技术】第三章【熵编码】
- 如何优雅地编写Java
- Linux UDP编程
- [高西泉] 数字信号处理(第四版)程序集
- 计算机科学导论整理知识点,《计算机科学导论》 数据库基础知识
- 期货高手:文华财经博易大师指标公式提取源码还原源码编写教程分享
- 男人来自火星 女人来自金星(约翰·格雷)
- 安装CentOS 时找不到硬盘( no usable disks have been found)的解决方法
- Vue3动态绑定组件警告处理
- 大学计算机基础知识手写笔记,清华学霸手写笔记火了,如同“电脑打印版”,学渣快来“瞻仰”...
- e^x导数为什么是e^x
- C++软件开发中“时间”相关操作全攻略
- 9月27日上市公司重大事项公告最新快递