Dart to js, ​​файлы слишком велики для мобильного трафика при использовании с многостраничными веб-приложениями

Компилятор dart2js делает файлы js слишком большими для одной страницы, для смартфона, использующего мобильный трафик, бесполезно, когда каждая страница получает отдельный файл *.dart.js. как можно уменьшить размер многостраничных веб-приложений? Я думаю, что более одной страницы на файл dart js невозможно или?

Я подумал примерно так:

webapplication.dart.js - index.dart(.js) - faq.dart(.js) - downloads.dart(.js)

но файлы dart компилируются индивидуально, и каждый файл будет иметь размер до 200 КБ с использованием разных импортов.


person NiRu    schedule 22.08.2014    source источник


Ответы (2)


То, что вы описываете, — это веб-сайт, где каждая страница — это собственное приложение для игры в дартс. Это не идеально, как вы заметили. Я бы рекомендовал использовать angular.dart для создания одностраничного приложения.

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

person w.brian    schedule 22.08.2014

Dart поддерживает отложенную загрузку, см. Как я могу выполнить два кода дротика в одном HTML

Как сказал @w.brian, разные приложения Dart для разных страниц неэффективно используют Dart.
Dart имеет большие накладные расходы для эмуляции функций, которые не предоставляет JavaScript (например, классов). Развертываемый пакет упаковывает все зависимости вместе и создает один файл js. Накладные расходы упакованы в каждый файл js. Одни только эти накладные расходы составляют около 200 КБ в заархивированном виде. Код пользовательского приложения должен быть довольно сложным, чтобы достичь такого размера. Поскольку эти накладные расходы упакованы в другой файл (в сочетании с пользовательским кодом), он также не может использовать кеш.
Это просто гладит Dart против шерсти. Чем больше становится приложение Dart, тем меньше бремени становятся эти накладные расходы. Со многими небольшими приложениями дело обстоит ровно наоборот.

В противном случае есть некоторые вещи, на которые следует обратить внимание:

Когда вы строите из DartEditor, режим по умолчанию — «отладка» (хотя и не совсем уверен). При сборке из командной строки по умолчанию используется «выпуск». Режим «отладки» производит больший вывод.

Когда вы используете библиотеку 'dart:mirrors', вы должны быть осторожны. Есть определенные соображения, которые необходимо учитывать, чтобы гарантировать, что размер вывода JS не раздуется.

И еще несколько вещей, о которых я, наверное, сейчас не подумал...

person Günter Zöchbauer    schedule 22.08.2014