使用红石服务网页
Serving a webpage with Redstone
我正在使用 Dart 使用 redstone and polymer 开发 Web 应用程序
因为 Dart 允许服务器端和客户端开发,所以我想知道 Web 应用程序的好的模式是什么(特别是 Dart)
选项 1:
有一个服务器,比如说,/bin/server.dart
1.1。在那里收到请求并回复 json
@app.Route("/user/:id", methods: const [app.GET])
getUser(int id) { ... }
有一个客户,即 web/user.html 和 web/user.dart
2.1 in user.dart 向服务器发出请求
2.2 接收json并形成一个合适的user.html
选项 2:
有服务器/bin/server
1.1 在那里收到请求并用 html 页面响应,类似于
@app.Route("/")
helloWorld() => "Hello, World!";
如果在第一种情况下我或多或少知道(并理解)如何使事情正常进行,但我发现我没有利用 Dart 的服务器-客户端代码共享真的很令人沮丧:我需要编码并解码回 json 以获得相同的数据。有办法避免吗?
第二个选项对我来说不太清楚:我将如何以这种方式提供网页?我如何让 Polymer 发挥作用?
非常感谢对文中问题的回答以及对开发 Web 应用程序的大胆方法的一般解释。
我认为选项 2 不可行。 Polymer 依赖于服务器端不允许的 dart:html。
您可以在此处查看红石 + 聚合物应用示例:https://github.com/luizmineo/io_2014_contacts_demo
基本上,它的工作方式是Option 1
:客户端和服务器通过服务API进行通信,数据编码为JSON。虽然,Redstone 也使用 shelf_static
包来为浏览器提供客户端代码。
如果您愿意,也可以使用服务器端模板引擎(例如 mustache)在服务器中构建 html 页面,尽管我认为将其与 Polymer 集成真的很困难.
最后,在客户端和服务器之间传输数据时,您总是必须以某种方式对数据进行编码,但这并不意味着它们不能共享代码。例如,他们可以使用相同的域 类。查看上面链接的示例应用程序以了解更多详细信息。
我正在使用 Dart 使用 redstone and polymer 开发 Web 应用程序 因为 Dart 允许服务器端和客户端开发,所以我想知道 Web 应用程序的好的模式是什么(特别是 Dart)
选项 1:
有一个服务器,比如说,/bin/server.dart
1.1。在那里收到请求并回复 json
@app.Route("/user/:id", methods: const [app.GET])
getUser(int id) { ... }
有一个客户,即 web/user.html 和 web/user.dart
2.1 in user.dart 向服务器发出请求
2.2 接收json并形成一个合适的user.html
选项 2:
有服务器/bin/server
1.1 在那里收到请求并用 html 页面响应,类似于
@app.Route("/")
helloWorld() => "Hello, World!";
如果在第一种情况下我或多或少知道(并理解)如何使事情正常进行,但我发现我没有利用 Dart 的服务器-客户端代码共享真的很令人沮丧:我需要编码并解码回 json 以获得相同的数据。有办法避免吗?
第二个选项对我来说不太清楚:我将如何以这种方式提供网页?我如何让 Polymer 发挥作用?
非常感谢对文中问题的回答以及对开发 Web 应用程序的大胆方法的一般解释。
我认为选项 2 不可行。 Polymer 依赖于服务器端不允许的 dart:html。
您可以在此处查看红石 + 聚合物应用示例:https://github.com/luizmineo/io_2014_contacts_demo
基本上,它的工作方式是Option 1
:客户端和服务器通过服务API进行通信,数据编码为JSON。虽然,Redstone 也使用 shelf_static
包来为浏览器提供客户端代码。
如果您愿意,也可以使用服务器端模板引擎(例如 mustache)在服务器中构建 html 页面,尽管我认为将其与 Polymer 集成真的很困难.
最后,在客户端和服务器之间传输数据时,您总是必须以某种方式对数据进行编码,但这并不意味着它们不能共享代码。例如,他们可以使用相同的域 类。查看上面链接的示例应用程序以了解更多详细信息。