【问题标题】:Are there any benefits to using the http package vs. built in HttpRequest class?使用 http 包与内置 HttpRequest 类相比有什么好处吗?
【发布时间】:2016-07-20 17:55:11
【问题描述】:

我正在使用 Dart 和 Polymer 编写一个 Web 应用程序,我们决定使用 http 包,特别是 BrowserClient 类来与我们的 Web API 通信。在构建应用程序时,我收到一条警告消息,如下警告消息:

警告:dart2js 中的 dart:mirrors 支持是实验性的, 并且不推荐。 镜像的这种实现是不完整的, 并且经常大大增加生成的大小 JavaScript 代码。

现在我们的应用程序没有直接对反射/镜像做任何事情,但我可以从警告消息中看出 http 包中的某些内容正在导入镜像并使用它。我知道将镜像用于与在浏览器中运行的代码相关的任何内容都被认为是不好的做法,因为它可能会使编译后的 JavaScript 膨胀。我想我的问题是,如果存在使编译输出膨胀的风险,我们为什么要在核心库中内置的 HttpRequest 类上使用它?

【问题讨论】:

    标签: dart dart-polymer angular-dart dart-html


    【解决方案1】:

    dart:mirrors 很难配置,因此它不会导致浏览器应用程序的代码膨胀(因此它不会影响 tree-shaking),因此不鼓励使用它,您会从 dart2js 收到此警告

    http 包使用dart:mirrors 来实现一个技巧,允许它在浏览器导入“dart:io”的控制台应用程序之间共享一些代码,这通常是被阻止的。

    这个技巧不会导致任何代码膨胀,您可以安全地使用它。 Dart 团队正在研究一种更好的解决方案(可配置导入),因此不再需要此技巧,但它尚未完全可用。

    【讨论】:

    • 好的,这很有意义。我觉得 BrowserClient 的接口更好用,因为这些方法是基于 HTTP 动词的,所以我认为我们现在将坚持使用 http 包。谢谢。
    猜你喜欢
    • 2010-11-06
    • 2020-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-02
    • 1970-01-01
    相关资源
    最近更新 更多