0

创建表单(文本字段、复选框、单选按钮等)并在用户输入后处理数据的最佳方式是什么?

只是将 web 组件用作 dart 的 web ui?

编辑:让我们想象以下示例应用程序:我想创建一个在线测验/测试。

  • 首先用户必须注册
  • 数据将存储在文本文件或数据库中
  • 用户可以登录并进行在线测验或进行在线测试。
  • 对于该测验/测试,我需要使用预定义的正确答案评估输入
4

3 回答 3

2

这是您问题的高级答案。

要在服务器端处理数据,您可以使用 HttpServer 类来启动 Web 服务器。见这篇文章

要将数据存储在平面文件中,您需要使用 dart:io 包打开文件并写入文件。请参阅File.openWrite()的文档。

要将数据存储在数据库中,可以在 pub 上为mysqlpostgresql提供包。

有两种不同的方式来实现客户端。传统的方法是使用模板生成带有表单标签中输入元素中的数据的 html,然后在您的网络服务器中处理表单提交。

现代的方式,也就是 Dart 社区的重点,是编写一个单页应用程序,它使用HttpRequest从服务器读取数据并将数据发送到服务器(通常使用json)。

于 2013-05-14T21:31:00.297 回答
1

使用 Web-UI 将是一个不错的选择。todomvc 应用程序很好地说明了如何动态捕获用户的输入。就选择而言,服务器端的处理是完全开放的。Dart 确实具有服务器端功能,您可以使用一些现有的库来完成您想要的。

处理信息服务器端的另一种方法是直接使用基于 REST 的 Web 服务(如 CouchDB)与数据库通信。Cloudant 提供这样的服务,并允许您从客户端直接与数据库通信,前提是您可以克服 Same-Origin-Policy。有两种方法可以做到这一点。在 CouchDB 实例上启用 CORS,或将您的应用程序托管在具有数据库的服务器上,这对于 CouchDB 也是可能的。

Dart 服务器端也支持 websockets,所以你可以通过 web sockets 轻松地将用户提供的数据传递到服务器,然后在服务器端做任何你喜欢的处理。

我能想到的另一种选择是将信息处理并保存在本地浏览器中。您可以从 Dart 客户端访问本地数据库或本地浏览器文件系统,并将所有内容保持在本地。对于统计数据,您可以让客户端更新您选择的 Web 服务。

于 2013-05-13T16:55:55.183 回答
1

在客户端,您可以从服务器检索数据(例如 JSON)并使用它来构建表单。这似乎很适合 Web 组件,因为可以根据接收到的数据动态添加元素。

该组件将绑定到模型,因此您可以在提交时将模型对象序列化为 JSON,并在提交时将其发送到服务器,或者仅将其作为标准 HTML 表单发送。

故事的服务器端不太清楚,我知道没有生产质量的 Web 服务器库,但你可以看看DartExpress或Stream为例,还有其他的,或多或少完整。无论如何,您必须从HttpRequest中提取 POST 有效负载(如果以 JSON 形式发送)或使用也可通过属性访问的表单数据queryParameters- 请注意,这是Dart:io.HttpRequestclass,而不是Dart:html.HttpRequest,并且它仅在服务器端可用。

提到的服务器框架稍微简化了这部分。

于 2013-05-13T14:17:34.810 回答