原网址:

http://www.infoq.com/cn/interviews/status-and-trends-of-webkit-and-html5

个人一些不成熟的见解,望讨论和指正。

节选

刚才朱老师讲了一下关于WebKit的一些事情,我正好涉及到做这方面的一些东西,就希望跟你探讨一下这方面的问题。因为我之前,我自己做豆瓣音乐人的应用,当时我们技术选型上,就是希望就是尽快的去完成这个事情,就跨平台去做,然后我就说选用WebKit的这种方式去做,它其实是一个混合的架构,然后用了PhoneGap这个框架去做。当时我的感觉就是做起来非常快,也很爽,就是做一个所有的的平台上就可以跑了。但是会遇到一些问题,比如在Android上会有一些性能的问题,我开始用了很多css 3效果,后来几乎把这些效果全部都去掉了。 比如像透明、半透明,这个我后来就全去掉了,你对做这些优化有什么建议吗?

朱永盛:对,首先这个问题提的很好,我觉得这个问题基本上涵盖了现在想使用Html5,或者想使用Web来做开发你的Application的共同的问题。就首先PhoneGap这个东西现在比较流行。我先说它好的一方面,它流行的地方就说,我刚刚说了,它跨平台很好,像现在iOS、Android,像Symbian,包括像BlackBerry上面都有这方面支持,然后本身HTML5做得也是跨平台,然而PhoneGap正迎合了这些Web开发者的这些需求,所以就说,那双方正好接起来。所以这个方面PhoneGap现在影响比较大;另外一方面,PhoneGap 他本身的核心功能在于他提供了那些打包和分发的机制。你可以通过他的方式,可以帮你分发,可以帮你打包 。因为我们知道,如果让你的HTML5程序,或者你的Web程序也运行起来,你下面要有个支撑平台,那么这个平台可能就说基于WebKit,或者基于其他的渲染引擎的平台。那么PhoneGap本身,他不提供这样的平台。他利用的是每个OS上面已经带的这个平台。举个例子来说,在Android上面他就是用Android的渲染的平台, 通常叫做WebView。那么在iOS上面,可能就要是另外一个,就苹果提供的叫英文这样一个平台,所以它本身就是Runtime没有提。所以这就是为什么你刚刚说在某些平台上性能好,某些平台上性能不好。就是因为在于它对后端支撑的平台它是不一样的,就我说的Web渲染的这个平台是不一样的,所以会导致这些问题。还有另外一个问题,你刚才说的Android上面性能不好的问题,这个问题我刚刚可能也部分的解释,就是因为他用了渲染引擎。我们知道Android上面是有一个叫做Android Browser,他其实上跟那个是Share同样的一个技术的架构。这个架构里面有很多缺陷,这就是为什么Google最近需要把Chrome这个浏览器推到Android上,因为Android的平台里面有很多硬件加速的东西没有做。在我们刚刚的session当中我也介绍了,硬件加速其实分为很多块,它实际上就是说Android的英文只做了其中的一方面 。但是Chrome现在说这个平台它已经投入到Android的阵营来,所以说他现在的硬件加速是做得非常多的;另一个方面,我刚刚说的PhoneGap所依赖的那个 Web渲染的平台, 那现在可能未来的方向就是把他们切换到基于Chrome的渲染机制上,我相信,当这个切换完成。因为我们最近也在参与这方面的一些事情,所以我相信这个东西切换到基于Chrome这套渲染效果上来说,我相信里面的渲染的效果会得到进一步提升。本身我是非常看好这个方向,因为PhoneGap这种用户成型,我觉得是可以说是使用HTML5开发应用程序起了非常好的头,开了非常好的头,所以未来风向,我觉得PhoneGap这种框架会非常的发扬光大,应该会有更多的厂商会参与进来,做这样的事情。因为从各个方面的需求来看,大家也都很关心这些方面的一些事情,所以我很看好它。

谢谢,我也希望以后能用Chrome的内核,就没有这些问题了。其实现在造成问题的也是Android比较早期的版本。想跟你谈谈另外一个问题,刚才说的是移动平台上的跨平台,就是桌面上我觉得WebKit也有这方面的能力,可以拿来使用。我们之前有做豆瓣FM的桌面客户端,我们也是希望说能够快速的开发,然后移植到多个平台上使用,所以我们当时同事冯强宁开发了一个叫做OneRing的一个框架,就是他其实是一个框架可以把WebKit包了一个类似浏览器的东西在里面。我们就可以用Python来写了一个Server,前面就用Html5、JS写了一个应用。我们也遇到一些问题,就是比如说包就会特别大,QtWebKit 那个是比较大的。如果不用它的话,我们又会面临很多跨平台的问题,就要求我们自己再去做。而且WebKit自己还有些Bug,很多Feature用不到,他没有支持所以不能用,对这个方向的开发你有什么建议?

朱永盛:是这样的,这块现在刚说,你想说,我们因为PhoneGap 有点感觉是在这个之上,PhoneGap之下我们需要一个统一的Web平台可以支撑PhoneGap,我们想统一后面的一个Web平台。其实这个东西现在我觉得应该是一个很热门的方向,包括其实我个人觉得,像Google、英特尔,我知道很多公司都想参与进来,共同推进这个事情的发展。这个东西现在一个问题,的确像你说的,比如像Webkit,他可能有自己的一些问题。那我觉得这个问题很好, 为什么呢?因为这也是我们未来努力的一个方向,像作为我来说,我参与这个HTML5的Web开发,也有蛮长一段时间了。我个人感觉像性能,包括一些Native的开发所使用的一些能力,现在HTML5里面还没有办法能够提供这些功能。所以你现在你的下面所使用的Web平台,比如类似于像QT WebKit,就要提供这样的能力。但是各种各样的有些这个平台提供的Performance,或者性能方面的一些问题是有缺陷的。缺陷在于渲染的这些架构,包括它的一些使用图形方面这些或者说还有很多工作需要去完善。所以我们其实也在积极的参与,想说提供一套这样的一个Solution。比如说我们想说,用WebKit打造一个这样的平台,这样的平台可能比如说,可以把目前最新的这些比如说硬件加速的机制、多核的一些能力都给使用起来,然后共同打造一个可以支撑HTML5应用程序的这么一个平台。然后跨平台,能做到这样的话,我相信以后应该是这个方向努力的重点。因为目前我个人觉得,像我们其实参与Chromium的,他也想做一个WebView的这样东西。那这样的东西其实就使用这样的东西,这样的一个东西在Android上我们也想提供,在Windows上我们也想提供,在Mac上,在Linux上,可能其他平台上我们都想提供这样的东西,我想这样的东西可能就是符合你们这样的需求。但是的确说的很对,现在这就是一个问题,现在因为没有一个很好的Solution可以解决这个问题,我觉得这是一个机会。我希望更多的公司可以参与进来,比如说像我们这边做得这块,我们也想参与进来。

InfoQ访谈:Webkit和HTML5的现状和趋势的更多相关文章

  1. Qt WebKit and HTML5 geolocation | Qt Project forums | Qt Project

    Qt WebKit and HTML5 geolocation | Qt Project forums | Qt Project Qt WebKit and HTML5 geolocation   I ...

  2. HTML5行业现状与未来 - 2016年终大盘点

    * { margin: 0; padding: 0 } .con { width: 802px; margin: 0 auto; text-align: center; position: inher ...

  3. 可能是国内第一篇全面解读 Java 现状及趋势的文章

    作者 | 张晓楠 Dragonwell JDK 最新版本 8.1.1-GA 发布,包括全新特性和更新! 导读:InfoQ 发布<2019 中国 Java 发展趋势报告>,反映 Java 在 ...

  4. NoSQL最新现状和趋势:云NoSQL数据库将成重要增长引擎

    NoSQL最早起源于1998年,但从2009年开始,NoSQL真正开始逐渐兴起和发展.回望历史应该说NoSQL数据库的兴起,完全是十年来伴随互联网技术,大数据数据的兴起和发展,NoSQL在面临大数据场 ...

  5. OpenResty的现状、趋势、使用及学习方法

    Nginx 是俄罗斯人发明的, Lua 是巴西几个教授发明的,中国人章亦春把 LuaJIT VM 嵌入到 Nginx 中,实现了 OpenResty 这个高性能服务端解决方案. 通过 OpenRest ...

  6. 现状、趋势如何?——《2019 年度 SaaS 行业【企业愿景】展望 · 总结篇》

    SaaS 行业产业地图和行业规模 看完SaaS的概念介绍,聪明的小伙伴们应该都理解了SaaS到底是个什么东西,但TOB的应用一般会离生活比较远,这里直接上产业地图,让大家对常见的SaaS产品有一个直观 ...

  7. 关于Html5发展和应用前景

    现在的HTML5就像当年崭露头角时的Ajax,有人在做,但不知道叫它什么.最近,苹果在 HTML5上大做文章,而著名的Web设计师Eric Meyer则提出了Web Stacks的概念.Alex Ke ...

  8. html5的发展历程和由此引起的政治斗争

    2007年,乔布斯断言拒绝Flash并预言HTML5时代来临,IT行业就对HTML5产生了一股宗教热情.HTML5有着许多出众的特性,可以直接在网页上绘图.嵌入音视频.实现信息互动,可以跨越iOS.A ...

  9. 深入理解HTML5:语义、标准与样式(勇猛精进早登大师殿堂创最优品质交互)

    深入理解HTML5:语义.标准与样式(勇猛精进早登大师殿堂创最优品质交互) [美]布拉德福(Bradford,A.) [美]海涅(Haine,P.)著 高京译 ISBN 978-7-121-20552 ...

随机推荐

  1. AbstractQueuedSynchronizer源码解读--续篇之Condition

    1. 背景 在之前的AbstractQueuedSynchronizer源码解读中,介绍了AQS的基本概念.互斥锁.共享锁.AQS对同步队列状态流转管理.线程阻塞与唤醒等内容.其中并不涉及Condit ...

  2. 让你的代码量减少3倍!使用kotlin开发Android(三) 缩短五倍的Java Bean

    回顾一下 哈,没想到你已经坚持不懈看到第三篇了,不错哈~坚持就是胜利. 本文同步自博主的私人博客wing的地方酒馆 在上一篇文章中,我们介绍了扩展函数,这里对上一篇进行一点小小的补充. 还记得text ...

  3. leetcode 之 Single Number II

    问题来源:Single Number II 问题描述:给定一个整数数组,除了一个整数出现一次之外,其余的每一个整数均出现三次,请找出这个出现一次的整数. 大家可能很熟悉另一个题目(Single Num ...

  4. Redis之(五)持久化

    Redis提供了两种持久化的方式: (1)RDB(Redis DataBase)模式,就是在不同的时间点,将Redis存储的数据生成快照并存储到磁盘等介质上: (2)AOF(Append Only F ...

  5. 每CPU变量

    最好的同步技术是把设计不需要同步的临界资源放在首位,这是一种思维方法,因为每一种显式的同步原语都有不容忽视的性能开销.最简单也是最重要的同步技术包括把内核变量或数据结构声明为每CPU变量(per-cp ...

  6. Servlet - 基础

    Servlet 标签 : Java与Web HTTP协议 HTTP(hypertext transport protocol),即超文本传输协议.这个协议详细规定了浏览器(Browser)和万维网服务 ...

  7. 为什么选择C++

    为什么选择C++,怎么不选其它语言呢? 为什么不选择C? 因为C++比C简单点~ 为什么不选择C#? 因为C++可以在所有操作系统上使用. 为什么不选择JAVA? 因为C++的性能好一点~ 还有其他的 ...

  8. Google Dremel数据模型详解(下)

    "神秘"的r和d 单从数据结构来看的话,我们可以这样解释r和d的含义.r代表着当前字段与前一字段的关系,是在哪一层合并的,即公共的父结点在哪?举例来说,假如我们重建到了Code=' ...

  9. 一个iOS6系统bug+一个iOS7系统bug

    先看实际工作中遇到的两个bug:(1)iPhone Qzone有一个导航栏背景随着页面滑动而渐变的体验,当页面滑动到一定距离时,会改变导航栏上title文本的颜色,但是有一个莫名其妙的bug,如下:

  10. 由源代码编译SpriteBuilder最新版本1.5.0搭配最新的Cocos2D 3.4.9

    大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请多提意见,如果觉得不错请多多支持点赞.谢谢! hopy ;) 大家知道SpriteBuilder版本停留在1.4.9已经很久 ...