2013-07-17 3 views
2

Я использую Dart для создания некоторой функциональности для сайта интрасети, и мне интересно, какой лучший способ организовать проект с двумя «страницами» в нем. Такие вопросы, как this one, предполагают, что единственный способ сделать это - динамически генерировать содержимое страницы на основе некоторых действий пользователя.Проект Dart с более чем одним основным файлом HTML

Мне не нравится эта идея по нескольким причинам. Во-первых, динамическая генерация логики/файловой организации разбивает HTML и затрудняет работу дизайнеров. Во-вторых, не сразу видно, как я сопоставляю две «версии» страницы с разными URL-адресами. И все это кажется излишне сложным.

Есть ли способ иметь две страницы «HTML» в одном проекте Dart, которые служат как отдельные URL-адреса, но могут совместно использовать код и т. Д. Моя наивная попытка просто добавить новый HTML-файл и поставить ссылки на скрипт Дарта не работали (шаблоны не отображались).

ответ

1

Веб-приложения, которые взаимодействуют с пользователем, используя клиентский уровень, который часто записывается как одностраничное приложение. Это означает, что этот вид приложения - это приложение, которое хранит состояние на стороне клиента.

Когда пользователь покидает эту страницу (url), приложение потеряет свое состояние. Также это произойдет, если вы попытаетесь обновить страницу. Различные страницы в этом случае означают точки входа в разные экземпляры приложения.

Чтобы написать такие приложения, обычно требующие использования определенных фреймворков (для повышения производительности).

Приложения, которые используют разные страницы для разных действий, можно назвать многостраничными приложениями. В этом случае глобальное состояние приложения хранится не на стороне клиента, а на стороне сервера, где находится это приложение.

Когда пользователь переходит с одной страницы на другую, приложение не закрывается немедленно, потому что оно хранит свое состояние в специальном экземпляре «сеанс», который представляет экземпляр приложения.

Если ваши вопросы звучат так: «Есть ли способ просто иметь две« HTML »страницы в одном проекте Dart», тогда ответ может быть следующим.

Это зависит от того, что вы используете фреймворки и как они (рамки) организованы.

Как правило, клиентское приложение использует только одну точку входа в приложение, но это зависит, как я уже сказал, от функций и условных возможностей среды.

И поскольку я знаю, что Дарт не является основой, а языком программирования и платформой для написания подобных фреймворков.

2

Ответ Mezoni верен, поскольку одностраничные приложения теряют свое состояние при перемещении с одной страницы на другую (типичные методы для передачи состояния между страницами включают использование запроса, локального хранилища или сеанса на стороне сервера. .).

Однако ...Я собираюсь предположить, что вы используете веб-интерфейс для создания своей страницы (на основе утверждения, что «шаблоны не получили визуализацию»

Возможно, вам не хватает второй страницы, чтобы добавить 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.html Оба и page2.html могут содержать одинаковое содержание, и указывают на одних и тех же базовых библиотек .dart (но в реальном мире, я подозреваю, что ты» d want to different content).

+0

Да, я использую веб-интерфейс. Я попробую попробовать. Спасибо. – brooks94

+1

Я бы объединил эти два вызова в один: ... 'build (new Options(). Arguments, ['web/page1.html', 'web/page2.html']);' –