3

我正在使用 Dart 为 Intranet 站点构建一些功能,我想知道组织一个包含两个“页面”的项目的最佳方式是什么。像这样的问题表明,(唯一的)方法是根据某些用户操作动态生成页面内容。

我不喜欢这个想法有几个原因。首先,动态生成逻辑/文件组织破坏了 HTML,使设计人员更难处理。其次,我如何将页面的两个“版本”映射到不同的 URL 上并不是很明显。而这一切似乎都是不必要的复杂。

有没有办法在一个 Dart 项目中简单地拥有两个“HTML”页面,它们作为不同的 URL,但可以共享代码等。我天真的尝试简单地添加一个新的 HTML 文件并将 Dart 脚本链接放入其中没有工作(模板没有被渲染)。

4

2 回答 2

3

Mezoni 的答案是正确的,因为当您从一个页面导航到另一个页面时,单页应用程序将失去它们的状态(在页面之间传递状态的典型方法包括使用 url 查询字符串、本地存储或服务器端会话......)。

但是......我将假设您正在使用 Web-UI 来创建您的页面(基于“模板未呈现”的声明

可能您所缺少的只是将第二页添加到build.dart文件中,用于生成输出 html+script,例如:

import 'dart:io';
import 'package:web_ui/component_build.dart';

// Ref: http://www.dartlang.org/articles/dart-web-components/tools.html
main() {
  build(new Options().arguments, ['web/page1.html', 'web/page2.html']);
}

两者page1.htmlpage2.html都可以包含相同的内容,并指向相同的底层 .dart 库(但在现实世界中,我怀疑您需要不同的内容)。

于 2013-07-17T14:57:22.017 回答
1

使用客户端层与用户交互的 Web 应用程序通常编写为单页应用程序。这意味着这种应用程序是在客户端存储状态的应用程序。

当用户离开此页面(url)应用程序失去其状态。如果您尝试刷新页面,也会发生这种情况。在这种情况下,不同的页面意味着指向应用程序不同实例的入口点。

要编写这样的应用程序,通常需要使用特定的框架(以提高生产力)。

将不同页面用于不同操作的应用程序可以称为多页面应用程序。在这种情况下,应用程序的全局状态不是存储在客户端,而是存储在该应用程序所在的服务器端。

当用户从一个页面转到另一个页面时,应用程序不会立即关闭,因为它将他们的状态存储在代表应用程序实例的特殊“会话”实例中。

如果您的问题听起来像“有没有办法在一个 Dart 项目中简单地拥有两个”HTML“页面”,那么答案可能如下所示。

这取决于您使用什么框架以及它们(框架)的组织方式。

作为一般规则,客户端应用程序只使用一个进入应用程序的入口点,但正如我所说,这取决于框架特性和约定。

据我所知,Dart 不是一个框架,而是用于编写类似框架的编程语言和平台。

于 2013-07-17T14:22:44.900 回答