具有多个主HTML文件的Dart项目

时间:2013-07-17 12:52:18

标签: dart dart-webui

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

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

有一种方法可以简单地在一个Dart项目中使用两个“HTML”页面,这些页面可以作为不同的URL,但可以共享代码等。我只是简单地添加一个新的尝试HTML文件并将Dart脚本链接放入其中不起作用(模板未呈现)。

2 个答案:

答案 0 :(得分:3)

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

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

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

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库(但在现实世界中,我怀疑您需要不同的内容)。

答案 1 :(得分:1)

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

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

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

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

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

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

这取决于您使用框架以及它们(框架)如何组织。

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

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