2015-03-19 3 views
0

У меня есть гибридное веб-приложение с использованием Backbone.js и около 20 поставщиков libs (JQuery, Paper.js, ...). Это веб-приложение используется непосредственно в разных браузерах, в веб-браузере в Android и внутри веб-обозревателя в iOS (а не в новейшем веб-обозревателе WKWebView iOS).Как оптимизировать статические активы в гибридном приложении

Я стараюсь оптимизировать доставку статических активов, чтобы избежать латентности в приложениях iOS и Android. На производстве я создаю 3 пачки: - 1 для моих файлов JS (383kB) - 1 для всех поставщики JS-файлов (918kB) - 1 для моих CSS файлов и для файлов поставщика CSS (209KB)

Каждой пачки является миниатюром и версией.

Я хотел бы знать, эффективнее ли использовать непосредственно файлы поставщиков с их CDN или большой комплект поставщиков из моего CDN?

Отправляя 3 пакета из моего CDN, я уменьшаю количество запросов, но загрузка и разбор этого огромного файла требует времени.
Позвонив каждому поставщику из своего CDN, я делаю 1 запрос на файл, но у большинства посетителей уже есть JQuery и некоторые другие библиотеки в памяти, поэтому они не будут загружать его снова.

Каков наилучший подход для оптимизации веб-просмотров?

+0

Вы должны использовать API AppCache для хранения всех этих ресурсов локально при первом загрузке приложения. – idbehold

ответ

1

Вы можете рассматривать эту ситуацию так же, как и обычную веб-страницу, оптимизированную для мобильных устройств. Во-первых, ~ 1.5 МБ для ваших активов JS и CSS высока, если ваша целевая аудитория мобильна. Не только старые устройства анализируют JS и CSS медленнее, а также латентность сети. Если это вообще возможно, попробуйте сократить количество используемых вами библиотек. Например, вам может не понадобиться все JQuery, и вы могли бы получить меньшую библиотеку, например, zepto.js.

Скорее всего, ваши посетители будут иметь только самые популярные библиотеки в своем кеше (jQuery, Backbone и т. Д.). Больше нишевых библиотек, таких как Paper.js, вероятно, придется загружать независимо. Кроме того, вам нужно будет использовать несколько CDN для доставки вашего контента, поскольку менее популярные библиотеки, такие как Paper.js, не будут размещаться в Google и т. П. Это означает, что вы полагаетесь на большее количество сторонних сторон. Поэтому в этом случае я буду обслуживать все ваши активы с ваших собственных серверов. Желательно, чтобы вы могли отправлять ваши файлы с CDN, например Cloudfront.

Смежные вопросы