为什么有些图书馆不能用于网络和命令行应用程序?

为什么有些图书馆不能用于网络和命令行应用程序?

问题描述:

在阅读Dart的文章library tour时,我刚刚发现某些库不能用于Web应用程序,并且其他库不能用于命令行应用程序或不能用于命令行应用程序,而所有这些提到的库都属于标准图书馆。例如,不能用于Web应用程序,但仅用于命令行应用程序。同样,只有网络应用程序可以使用dart:html,但不能使用命令行应用程序。为什么有些图书馆不能用于网络和命令行应用程序?

我知道dart:html提供的更适合于编写网络应用程序,但我不明白为什么有这样的限制,即不能在命令行应用程序中使用dart:html提供的某些服务。

当然,这些陈述假定在Dart编写应用程序时,我们必须明确区分命令行和Web应用程序。这是真的?如果是的话,上面的限制真的很严格,或者他们实际上是建议?如果它们是真正的限制,那么以这种方式设计Dart及其标准库的目的是什么?

+0

不确定在什么情况下需要浏览器中的文件,套接字,环境变量和HTTP服务器支持。 –

+0

@TobeO HTTP服务器_浏览器_内? – nbro

+0

准确地说我的观点 - 这就是为什么dart:io仅仅是服务器端。浏览器不支持其功能 –

dart:html与DOM对话。虚拟机中没有DOM。同样,dart:io以浏览器无法访问的方式与操作系统进行通信。 (您的浏览器无法启动进程,打开文件或设置AJAX和WebSockets以外的套接字。)分离是有意义的。