【问题标题】:Google GWT cross-browser support: is it BS?Google GWT 跨浏览器支持:是 BS 吗?
【发布时间】:2011-01-14 17:32:54
【问题描述】:

我在 FlashBuilder 中开发了一个部署在浏览器中的全文搜索应用程序,它以 REST 方式与远程 Web 服务器进行通信。该软件适合一个小众市场——它适用于古代语言而不是现代语言,而且我不可能在它上面赚到任何钱,但我确实花了很多时间在它上面。

现在 Apple 不允许在 iPad 上使用 Flash,我正在寻找 100% 的 JavaScript 解决方案,并被引导考虑 GWT。它看起来很有希望,但是其中一个应用程序被“展示”为可以使用 GWT 完成什么的杰出示例,在其网站上有此免责声明(名称 {removed} 以保护可能的无辜者):

您当前的网络浏览器 (Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/532.5(KHTML,像 Gecko) Chrome/4.1.249.1045 Safari/532.5) 不受官方支持 {公司和产品名称在这里}。如果您在使用本网站时遇到任何问题 请安装 Microsoft Internet Explorer 6+ 或 Mozilla Firefox 3.5+ 在联系 {product name was here} 支持之前。

当 GWT 应用程序未在 Chrome 上“正式”支持时,会有什么影响?你会给 GWT 什么等级(A、B、C、D、F)以获得跨浏览器支持?对于没有得到这些字母等级的人,A 是“优秀”,“F”是失败,“C”是一般。

感谢您的意见。

【问题讨论】:

    标签: gwt cross-browser


    【解决方案1】:

    所有基本的 GWT 小部件都是跨浏览器兼容的 - 这是通过称为 Deferred Binding 的东西实现的(并非总是如此,但对于最严重的违规者;))。基本上,它允许基于客户端使用的浏览器将一个类无缝“替换”为另一个类(这种交换是在编译期间完成的)。这允许为所有符合标准的浏览器编写一个小部件,然后为你知道的人提供一个专门的版本(延迟绑定也用于 i18n 和其他很酷的东西,比如dependency injection)。 Deferred Binding 的另一个很酷的地方是客户端只将 Web 应用程序的版本特定下载到他/她的浏览器。因此,Firefox/Opera/Chrome/WebKit 用户不必下载所有使 Web 应用程序在 IE 上运行的额外 hack。

    长话短说:GWT 为开发人员提供了创建跨浏览器 Web 应用程序的工具/方法(它试图通过提供跨浏览器的基本小部件来使该过程尽可能简单。开箱即用的浏览器)- 是否使用这些工具取决于开发人员;)

    PS:同样的问题可能会被问到关于 jQuery/mootools/etc 的问题——为什么这些框架声称可以在所有浏览器上工作,但是有很多网站/Web 应用程序使用它们并且不支持所有这些浏览器? 因为开发人员选择了这样。 仅仅为了让 Web 应用程序/网站在濒临死亡的(希望如此)浏览器上工作而削弱 Web 应用程序/站点可能不值得。

    【讨论】:

    • 感谢您提供有关延迟绑定的信息。
    • GWT 如何检测哪个浏览器是哪个?以及我将用户代理更改为自定义的内容。
    • 在内部,它可能会查看您的用户代理(如果您想确定,请查看来源)。当为不同的浏览器提供不同的小部件版本时,他们使用Deferred Binding (docs)
    【解决方案2】:

    应用程序的 GWT 部分在 Webkit 浏览器(如 Chrome 和 Safari)上运行得非常好。如果本网站的作者决定加入浏览器检测并在 Webkit 上大发雷霆,那不是因为 GWT,尽管可能存在 GWT 附加组件或其他不喜欢 Webkit 的组件。

    引用常见问题解答http://code.google.com/webtoolkit/doc/latest/FAQ_GettingStarted.html#What_browsers_does_GWT_support?

    GWT 支持哪些浏览器?

    GWT 支持以下浏览器:

    • Firefox 1.0、1.5、2.0、3.0 和 3.5
    • Internet Explorer 6、7 和 8
    • Safari 2、3 和 4
    • Chromium 和谷歌浏览器
    • Opera 9.0

    【讨论】:

      【解决方案3】:

      并非一切都在 IE8 中运行良好...看看: http://code.google.com/p/google-web-toolkit/wiki/IE8Support

      【讨论】:

        【解决方案4】:

        代码拆分was not supported 直到 2.1。

        【讨论】:

          猜你喜欢
          • 2011-03-30
          • 2020-02-25
          • 1970-01-01
          • 1970-01-01
          • 2015-05-16
          • 2013-07-01
          • 2013-11-12
          • 2019-04-11
          • 2012-06-03
          相关资源
          最近更新 更多