阅读更多

11顶
0踩

互联网

转载新闻 Google Chrome 工程师访谈录

2009-03-04 13:16 by 副主编 ouspec 评论(0) 有3153人浏览

Google Chrome 工程师访谈录

 

几 个月前 Google 突然携 Chrome 加入已经白热化的浏览器之战,对很多人来说这非常意外,然而对 Google 工程师 Lars Bak 来说,Chrome 是他们多年的心血。Bak 领导开发了 Chrome 的 v8 JavaScript 引擎,该引擎是 Chrome 最为人称道的功能,随着浏览器越来越成为众多 Web 应用的宿主,很多浏览器内置的 JavaScript 引擎已经不堪重负。

 

Lars Bak 告诉 TechRadar,很奇妙,这正好是我们两年半前开始的工作。一开始,我们没有遇到竞争,就 JavaScript 执行速度来说,之前的所有浏览器没有多少差别,而这已经成为 Web 程序的瓶颈。于是我们开始为 JavaScript 加速以适应那些大量采用 JavaScript 的 Web 程序。

虽然 JavaScript 不是浏览器的全部,然而 JavaScript 在浏览器的效率是可以测量的,这就为浏览器带来了可比较性。我们的这个想法引发了整个行业的关注,v8 推出后,我们看到很多浏览器商都推出了他们自己的新 JavaScript 引擎。

以下为访谈全文,TR - Tech Radar, LB - Lars Bak。

TR: 你是否认为是 Chrome 对 JavaScript 的关注与创新引发了别的浏览器在这方面的努力?

LB: 我希望是我们的创新引发了其它浏览器到努力,看时间顺序也是这样,这是一个合理的解释。不过这并不重要,因为别的浏览器都慢,只有你一枝独秀也不行,Web 开发者必须要考虑那些最慢的浏览器,因此我们希望所有浏览器都快。

如果我们看看 JavaScript 的历史,一开始,它用来做一些诸如点某个按钮一类的工作,但它最终出人意料地成为一种 Web 编程语言。

我们从零开始的一个原因是,觉得目前的平台,其灵活性无法适应一个高性能的引擎。从根本上,我们希望展示一个可灵活运用于将来 Web 程序的 JavaScript 引擎。

TR: 那你是否觉得已经实现了这样接近未来 Web 程序需求的浏览器?

LB: 是的,可以这样说。我的意思是我并非毫无基础。我使用 Java 一类的语言做了20年虚拟机,Chrome 肯定是建立在这些系统的基础上的。我相信我们的 JavaScript 引擎拥有很好的灵活性,虽然目前多数 Web 程序还用不到,但将来会。

Chrome 有很多有趣的地方。我个人喜欢它非常整洁的 UI,我的意思是,如果你在一些老笔记本电脑上使用, Chrome UI 占很少的屏幕空间。另外,Chrome 设计时有一个原则,就是不会让你受到打扰,不会有弹出的窗口让你分心,你可以一直停留在当前网页上。

还有一个更有趣的功能,如每个标签都运行自己独立的进程,这增强了安全和独立性,和其它浏览器比较一下就会发现每个标签都独立运行。

这就不会导致崩溃,这是一个方面,从性能上讲,别的浏览器所有 Tab 使用同一个 JavaScript 引擎,这样随着 Tab 的增多势必越来越慢。

TR: 很显然 Chrome 在缺乏第三方扩展支持方面遭人诟病,会很快推出吗?

LB: 我们在做这件事。我们在博客中提过,今年会推出而且肯定是人们想要的东西。不过,当您工作于一个新项目,你应当将重点放在基础上,比如我们的 UI,其它东西可以慢慢来、我非常确切,Chrome 会有一个非常健康的第三方扩展市场。

TR: 最近的一些浏览器似乎从 Chrome 那里借鉴了一些东西,这是好事吗?
LB: 我不知道这是否模仿,但我们启动这个项目的初衷就是鼓励创新。我们的源代码是公开的,任何人都可以获得,因此如果有人使用了我们的 Tab 风格,那正是我们希望的。鼓励创新是整个 Chrome 项目的基石,这很好。

竞争也是好的,尤其当我们可以分享其途径的时候,用户将最终受益。我觉得人们有多种选择是很好的,他们可以尝试不同浏览器。

在 Google,我们尝试过很多不同浏览器,不同设计,人们应当多尝试一些。健康的竞争非常重要,最终会让用户受益,也会让人们在使用 Web 的时候更舒适一些。

TR: 浏览器和操作系统之间的界限越来越模糊,是这样吗?

LB: 在没有 Wi-fi 接入的地方很多人因为浏览器上不了网而觉得天塌下来了。这很有趣,似乎任何人买回新电脑后并不安装本地程序,他们只使用浏览器。

Web 已经成为计算机不可或缺的一部分,浏览器和操作系统之间的界限已经不是很重要。对 Google 和 Chrome 而言,我们所有内部程序都是基于 Web 的,因此我们已经接受浏览器的一切。

TR: 那么在选择浏览器的时候,速度是否应当成为决定性因素?

LB: 还应当有别的倾向,速度自然是一个因素,还应考虑其活力,我们就试图让 Chrome 成为一款充满活力的浏览器。人们还喜欢简单,意味着你知道下一步做什么。

我觉得,速度很重要,同时,浏览器整体速度的提高也很重要,随着更多标准化 Web 程序的推出,我们会很容易衡量浏览器的整体速度。

TR: 随着 Windows 7 与 IE8 的到来,人们是否还会使用那些非默认浏览器,像 Chrome, Firefox?

LB: 我觉得既然下载就是点下鼠标的事,那不会是多大的问题。希望竞争可以促使人们使用适合他们的浏览器。

TR: Chrome 还相对有些新,它的表现如何?

LB: 我们获得的反馈绝大多数是积极的。它于去年12月正式推出,还不到一个季度,考虑到这这点,我觉得我们的市场份额很不错。人人都已经有了自己的浏览器,因此还要再等一阵,不过如果你有好的功能,人们会上门。

我们希望做得更好,随着当前大量 Web 程序的推出,你能看到的是更多的功能。Web 程序一个最基本的特点是人们无需自己升级,他们在浏览器中看到的就是最新的,我喜欢这点。

11
0
评论 共 0 条 请登录后发表评论

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • 利用WebBrowser获得页面部分数据

    Internet Explorer 不只是一个程序,更是许多可重复使用组件的集合与容器。在拆取 Web 页时,最有意思的两个组件是 shdocvw.dll 和 mshtml.dll。第一个组件 shdocvw.dll,包含称为 WebBrowser 的 Microsoft(R) ActiveX(R) 控件,它真实地显示 Web 页。在运行 Internet Explorer 时,显示 Web 页的主窗口就是这样的控件。第二个组件 mshtml.dll,含有能分析 WebBrowser 控件中所包含文档的 HTML 分析器。

  • webbrowser抓取php网页源码,获取webbrowser控件 网页的源码(收藏)

    获取webbrowser控件 网页的源码(收藏)翻译|其它|编辑:郝浩|2005-04-28 09:45:00.000|阅读 3152 次概述:我在网上找到使用rft控件保存webbrowse文本 txtHtml是RichTextBoxtxtHTML.Text = WebBrowser1.document.body.innerText'flag :rsftext 保存为txt文件,strtmp文件...

  • 获取webbrowser控件 网页的源码(收藏)

    google_ad_client = "pub-2947489232296736";/* 728x15, 创建于 08-4-23MSDN */google_ad_slot = "3624277373";google_ad_width = 728;google_ad_height = 15;//<script type="text/javascript"

  • TWebBrowser获取网页源码

    uses ActiveX, ComObj; //... function GetHtml(const WebBrowser:TWebBrowser): string;//此函数原作者卢小海 const BufSize = $10000; var Size: Int64; ...

  • C#获取webbrowser源码

    System.IO.StreamReader getReader = new System.IO.StreamReader(this.webBrowser.DocumentStream, System.Text.Encoding.GetEncoding(this.webBrowser.Document.Encoding)); string gethtml = getRead

  • 直接访问webbrowser控件中的html源码

          但是在实际编程过程中,这个控件提供的功能有很多限制,比如对html文档的浏览,只能通过指定url或文件名来实现,不能像以往使用thtml控件那样直接读写html源码。因此如果程序动态生成了一段html文本,就必须把文本内容先写到一个临时文件,然后再将此文件的文件名传递给webbrowser控件,实现显示。走这一个弯路使程序响应速度受到很大影响,而且容易遗留下一些"垃圾"(临时文件)。 

  • WebBrowser读取网页完成后读取网页源码

    WebBrowser1.Navigate(Edit1.Text); while WebBrowser1.Busy or (WebBrowser1.ReadyState &lt;&gt; READYSTATE_COMPLETE) do Application.ProcessMessages; Memo1.Lines.Add(iHtmldocument2(WebBrowser1.Document).b...

  • c#.net使用webBrowser1获取网站信息源码

             private void button1_Click(object sender, EventArgs e)         {             string url = @"http://www.***.com/Login.aspx";             webBrowser1.Navigate(url);             while (we

  • 动态更改WebBrowser数据流内容 (动态修改网页源码)

    <br />有时,由于软件的特殊需要,我们希望DELPHI在WebBrowser或embeddedwb里动态更改返回的数据内容,而这需要返回网页的所有原始源码,包括网页开始的DOCTYPE html PUBLIC声明部分,仅仅使用mshtml是无法实现的,需要用到数据流的方法。 <br /> <br />    具体执行方法如下(需要 uses mshtml,activex): <br /> <br />procedure TForm1.Button1Click(Sender: TObject);<br /

  • web页面嵌入应用中遇到的 Object.entries is not a function 问题的解决(vue项目)

    网上寻找到的答案,原网址点我:因为 es6的generators的entries函数不支持,最后查看大神的回答才发现:babel只能在构建过程中转译语法糖,比如说将ES7/ES6/JSX中的语法部分(例如箭头函数)转译成ES5。而polyfill则是解决原生对象的问题,比如说你的浏览器不支持Promise,babel就给你建一个Promise供你使用。这样就清晰了,在webpack构建的时候加上b...

  • 浏览器报错obj.attachEvent is not a function

    书上讲主流浏览器的事件模型分为IE事件模型和标准事件模型,那么如何区分,IE事件模型中window对象提供了event属性 保存当前事件;标准事件模型中,事件对象是在事件触发时生成,作为参数传递给事件处理程序,是局部的。具体代码区分为 if (window.event) { obj.attachEvent('on'+name,handler); } else { obj.addEvent

  • 直接访问WebBrowser控件中的HTML源码

    直接访问WebBrowser控件中的HTML源码 华中师范大学 卢小海 ---- 为了实现在自己的程序中显示HTML文档,我们一般采用IE(Internet Explorer本文中简称为IE)发行时附带的一个ActiveX控件TWebBrowser。这个控件使用和IE相同的内核,功能强大,并从 Delphi5开始,正式得到Inprise公司的支持,取代了原来的那个THTML控件,成为Delphi中

  • VC/MFC 从WebBrower 中获取 HTML 和文本

    本文部分转载于http://blog.chinaunix.net/uid-2516614-id-2496197.html 用于参考 /////////////////////////////////////////////////////////////// 外部窗口接口获取(非原博客,是自己添加的其他通过获取IE浏览器窗口的句柄,在由句柄转换成IE的接口): HWND hWnd

Global site tag (gtag.js) - Google Analytics