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技术相关推荐

  1. 手机淘宝双11全球狂欢节技术解读

    手机淘宝 双11全球狂欢节技术解读 2015双11全球狂欢节全天交易额912.17亿元!无线成交626.42亿元!无线占比68.67%!--这是消费的力量,是新经济的力量,是我们每一个人的力量,更是中 ...

  2. 手机淘宝构架演化实践及优化,天猫,淘宝服务

    > 天猫App 安全模式:天猫App启动保护实践- https://mp.weixin.qq.com/s?__biz=MzUxMzcxMzE5Ng==&mid=2247488429&am ...

  3. 手机淘宝提升排名的主要权重!!

    无线端是未来,各位大佬们疯狂砸钱不会是无缘无故的,生活在资本市场的社会里,方向很重要,思维很重要,看看身边的朋友们,是不是一个个一天天抱着手机,看小说,看视频,玩游戏,听音乐,刷微信,想一下,身边朋友 ...

  4. 电商客户端竞品分析-手机淘宝、京东、唯品会、聚美优品

    市场状况 艾瑞最新统计数据显示,2013年移动网购整体交易规模1676.4亿元,同比增幅高达165.4%,而同期PC端网购规模将近16000多亿元,同比增速35.7%.预计2017年市场规模将近万亿, ...

  5. 如何利用SEO优化技巧做手机淘宝产品的排名

    在今年的双十一活动中,淘宝双十一购物狂欢节总交易额高达571亿,无线端贡献243亿,占比42.6%,去年无线端占比为15.3%,增长速度几乎为两倍,这是一组让人惊奇而耐人寻味的数字,它又意味着手机淘宝 ...

  6. 求一个手机淘宝直播中抢购的脚本,急

    要求,手机淘宝直播中不管上架什么东西,我都是第一个购买成功的! 天灵灵地灵灵,太上老君急急如律令,大神来>o<

  7. 手机淘宝的客户端架构探索之路

    本文转自:http://blog.csdn.net/licaomengrice/article/details/49253255 主讲人:冯森林(无锋/ Oasis Feng) 产品挑战 淘宝手机客户 ...

  8. Android热补丁技术—dexposed原理简析(手机淘宝采用方案)

    上篇文章<Android无线开发的几种常用技术>我们介绍了几种android移动应用开发中的常用技术,其中的热补丁正在被越来越多的开发团队所使用,它涉及到dalvik虚拟机和android ...

  9. 当手机淘宝遇见海尔电商

    该文章来自阿里巴巴技术协会(ATA)精选集 7月的青岛,向来是旅游胜地.手机淘宝技术团队收到海尔的邀请,展开了一场别开生面的技术之旅,阿里无线事业部(手机淘宝)资深总监南天也应邀在[海尔电商技术沙龙] ...

最新文章

  1. oracle group by用法
  2. insertion Sort List (链表的插入排序) leecode java
  3. 关于java类型数据组的调用
  4. linux tail 命令,Linux tail命令的巧妙应用
  5. 专家解读EdgeRoutine边缘程序
  6. My Lead route attach and detach issue
  7. Java并发教程–信号量
  8. 【H.264/AVC视频编解码技术】第三章【熵编码】
  9. 如何优雅地编写Java
  10. Linux UDP编程
  11. [高西泉] 数字信号处理(第四版)程序集
  12. 计算机科学导论整理知识点,《计算机科学导论》 数据库基础知识
  13. 期货高手:文华财经博易大师指标公式提取源码还原源码编写教程分享
  14. 男人来自火星 女人来自金星(约翰·格雷)
  15. 安装CentOS 时找不到硬盘( no usable disks have been found)的解决方法
  16. Vue3动态绑定组件警告处理
  17. 大学计算机基础知识手写笔记,清华学霸手写笔记火了,如同“电脑打印版”,学渣快来“瞻仰”...
  18. e^x导数为什么是e^x
  19. C++软件开发中“时间”相关操作全攻略
  20. 9月27日上市公司重大事项公告最新快递

热门文章

  1. 计算机科学与技术路线,技术路线写法
  2. linux常用命令语句(全)
  3. 两条线段之间的最短距离
  4. oracle ocp认证指南,OCP认证考试指南(三):创建Oracle数据库
  5. HTML 字体图标的引入
  6. 岳阳的第一场雪,我这辈子的第一场雪。
  7. 做一个FLASH游戏你需要掌握的东西【实用】
  8. 永久免费的专业二维码生成器和二维码扫描器
  9. web防火墙和waf防火墙的区别和选择
  10. 生死看淡,不服就干,小米终于迎来了久违的大幅反弹