【问题标题】:dart:io and dart:html being mutually exclusivedart:io 和 dart:html 互斥
【发布时间】:2012-11-04 03:52:14
【问题描述】:

我遇到了与 this chap 类似的情况,我希望 dart:io 和 dart:html 在同一个应用程序中。我知道 dart:io 是一个服务器端库,而 dart:html 是一个客户端。我的情况如下。我有一个程序可以将大量文本输出到日志文件。我发现 Dart 擅长文本操作。我想获取日志文件文本,对其进行操作,将一些信息放在标题文本区域中以提高可读性等,然后查看页面。

我无意将其发布到网络上。它只是用于我的工作计算机。我只想要 dart:io 的文件加载功能和 dart:html 的漂亮显示。上一篇文章是在 4 月,Dart 的开发速度很快。现在有另一种方法可以做我想做的事吗?

我知道我可以编写一个程序来构建一个 HTML 文件,其中包含适当字段中的操作文本,然后打开该 HTML 文件,但我不太喜欢这个想法。还有其他方法吗?

【问题讨论】:

  • 当你说“dart:html 的漂亮展示”时,你指的是什么?
  • TextAreas 和 TextFields 等。
  • 我认为为 HTML 元素创建字符串和使用 DOM 实际创建该元素是有区别的。这就是为什么在服务器上安装 dart:html 可能没有意义的原因之一。服务器没有 DOM。当然,使用服务器上的 DOM 来表示一个 HTML 页面,然后将其序列化为 HTML 可能会很有趣,但这听起来和 html5lib 正在做的事情类似(虽然我没有使用过)。
  • 我不得不使用字符串而不是元素,这让我很困扰。在使用对象时我不太可能犯错误,例如myTextField.value = "foo",而不是 "。我有类型检查器来帮助使用对象。它也更易于使用和阅读。
  • 我听到了。您是否尝试过使用 html5lib?如果有,您的经历是什么?

标签: dart dart-html dart-io


【解决方案1】:

您可以考虑在服务器端应用程序上使用这个库html5lib 来生成 HTML 输出。然后只需在浏览器中打开文件即可。这也可以通过调用启动进程来自动启动,该进程启动浏览器并指向您生成的 html 文件。

html5lib 仍在进行中,但我相信他们希望听到您的反馈。

【讨论】:

    【解决方案2】:

    我同意,如果您只想创建一个静态网页,那么使用像 html5lib 这样的库可能是最好的。但是,如果您喜欢做更多的事情,我认为可以将服务器端 dart 视为模型,将客户端视为“其余部分”。剩下的主要看你是否喜欢 MVC、MVP、...

    我已经接近在 dart 中开发一个桌面应用程序,但我仍然没有找到一个足够有趣的例子来让我继续前进。我一直在想我会怎么做,我相信通过将两侧(模型和“其余部分”)连接到一个网络套接字,一个简单的序列化协议(例如 json),你可以轻松地创建一个rpc 带有客户端包装器,使用noSuchMethod() 作为代理,在服务器端使用镜像。如果您喜欢使用 Web 套接字,可以通过其他方式创建回调。我相信 Gilad 在his talk from the HTML5 Dev Conf 中提到了一种类似的分离株之间的 rpc 技术。

    无论如何,您会在同一个“应用程序”中得到dart:iodart:html,但该应用程序将由服务器端和客户端组成。这就是我将为我的下一个桌面应用程序尝试的内容,无论是什么 :)

    【讨论】:

      猜你喜欢
      • 2014-04-02
      • 2020-01-26
      • 2021-08-16
      • 1970-01-01
      • 2021-01-28
      • 2018-05-23
      • 1970-01-01
      • 2011-01-06
      • 2010-12-17
      相关资源
      最近更新 更多