#javascript #mobile
#javascript #Мобильный
Вопрос:
Не собираюсь начинать пламенную войну 🙂
Я хочу создать модульное приложение javascript для мобильных устройств (реализация green field). Итак, требования заключаются в том, что он должен быть относительно легким, поддерживать отложенную загрузку вспомогательных модулей на основе решения времени выполнения (например, пользовательских настроек) и иметь минимальные возможности шаблона и MVC. Связь с серверной частью, вероятно, будет основана на websocket API (если это что-то изменит). Подумайте что-то вроде www.twitter.com это должно выполняться внутри мобильного Safari.
Я хорошо разбираюсь в jQuery и слышал о множестве новых фреймворков javascript (backbone.js , require.js , zepto.js и так далее), Но у меня не было возможности их использовать. Я сомневаюсь, что у меня достаточно времени, чтобы изучить их все и создать прототип, поэтому я ищу некоторую мудрость сообщества относительно того, что считается лучшей практикой в настоящее время.
Спасибо.
Комментарии:
1. Вопрос, основанный на мнении.
Ответ №1:
Хорошая структура приложения — ваш друг при написании приложений на JavaScript. Я взглянул на позвоночник и магистраль, но в итоге использовал JavaScriptMVC. Основные причины:
- На основе jQuery (поэтому каждый плагин jQuery, который вы найдете в Интернете, будет просто хорошо интегрирован)
- Предоставляет способ организации вашего приложения по умолчанию (в соответствии с архитектурой плагина / mvc
- Продвигает лучшие практики (тестирование и т.д.)
- EJS как механизм создания шаблонов
- Легко расширяемый
- Чрезвычайно хорошо документировано
- Встроенные инструменты повышения производительности для генерации кода, сжатия кода, управления зависимостями JS
Возможно, вы могли бы объединить его с jQuery mobile в соответствии с вашими потребностями.
Это может удовлетворить ваши потребности, поскольку:
- Модульность: создавайте плагины / модули MVC для каждого модуля вашего приложения
- Отложенная загрузка: Steal (встроенная система управления зависимостями) загружает ваши данные в зависимости от того, когда к ним обращаются
- Сжатие: минимизирует ширину полосы за счет сжатия production.js файл с помощью компилятора закрытия Google.
Комментарии:
1. JavaScriptMVC — это огромный раздутый фреймворк. Я сомневаюсь, что вы можете позволить себе использовать его из-за ограничений мобильных устройств.
2. @Raynos Это хорошая платформа для быстрого начала работы (что было обязательным требованием, если я правильно понял вопрос). Позвоночник требует дополнительной настройки, например, включения require.js и т.д… Кроме того, вам не нужно включать весь материал JavaScriptMVC, а только то, что вам нужно. Но, конечно, никогда не пробовал это для мобильных устройств.
3. Одна только папка jQuery содержит 2 МБ исходного кода: это большой раздутый фреймворк, вы не можете позволить себе загружать его на мобильное устройство, вам нужно что-то легкое и гибкое.
4. Но это не то, что будет развернуто. У меня много материала в моем веб-приложении, действительно много, и я достигаю размера ~ 800 КБ в сжатом виде (включая CSS). Итак, в мобильном приложении я бы, вероятно, сократил около 50%, чтобы достичь примерно 400 КБ, если вообще достигну.
Ответ №2:
Модульный javascript включает в себя две вещи
- Написание модульного кода
- Загрузка модульного кода
Писать модульный код легко. Все, что вам нужно сделать, это иметь слабо связанный код, который не зависит от глобального состояния и предоставляет себя как модуль.
Загрузка модульного кода требует использования загрузчика модулей. require.js как вы упомянули, популярно. или вы можете попробовать что-то более свежее, например, seajs.
Что касается других фреймворков, они вам на самом деле не нужны, но если вы не знаете, как создавать архитектуру JavaScript, то у меня возникнет соблазн сказать, что вам следует использовать zepto и spine.js .