2017-01-20 7 views
1

У меня довольно старомодный webapp, который имеет разные URL-адреса и страницы, в основном на серверном сайте для каждого, например /contacts, /orders, /orders/123456.Должен ли я делить свой внешний код на общие и страницы?

Я думаю о взломе кода клиента в общих и страниц конкретных частей как файлы, так что я бы список файлов, как это:

/js/common.js 

/js/login_page.js 
/js/contacts_page.js 
/js/orders_page.js 
/js/orderview_page.js 
... 

Таким образом, я бы две ссылки на странице - один для общей части и один для текущего кода страницы.

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

Хотя существует тенденция объединить весь набор файлов в один, который делает первую нагрузку длиннее, а затем код других страниц загружается мгновенно, поскольку он уже находится в кеше.

/js/app.bundle.js 

Какую стратегию я должен выбрать и какие факторы могут повлиять на решение?

+0

Вещь, afaik, заключается в том, что вы создаете только один пакет, который вы сохраняете http-запрос, который должен быть быстрее, чем два запроса - один для общего кода и один для конкретного - даже если размер кода больше. Однако это зависит от того, как браузеры обрабатывают параллельные запросы, количество запросов к скриптам поставщиков и другие ресурсы вашей страницы и конфигурацию домена, с которой ваша страница загружает ресурсы. Я верю, что одна стратегия может быть быстрее в старых браузерах и медленнее в современных браузерах. Однако разница между одним или двумя пучками незначительна. – Sergeon

ответ

0

Из чего я понимаю, у вас есть 2 варианта здесь. Сначала нужно использовать отдельные JS-файлы для каждой вашей страницы, а второй - объединить все файлы. В любом случае, если файлы кэшируются в браузере, важно, чтобы начальное время загрузки.

Задержка при загрузке разных файлов в основном из-за размера файлов, в то время как некоторое количество времени теряется в служебных целях, связанных с загрузкой каждого файла отдельно. Итак, если вам нужно 10 файлов для загрузки для определенной страницы, то объединение всех этих 10 файлов будет немного быстрее, чем сложение 10 разных файлов вместе. Однако, если вы играете в клубы по 100 файлов, но им нужно только 10, то загрузка этих 10 файлов по отдельности будет лучшим вариантом.

Я бы сказал, что вам нужно будет использовать смешанный подход, в котором вы обязательно объедините файлы вместе, но не все из них в одном пакете. Можно разделить ваши файлы в разных группах на основе этого требования. Допустим, вам нужно заказать 5 файлов JS (orders_page.js, orderview_page.js и т. Д.), А затем объединить все это вместе. Аналогичным образом файлы, связанные с контактом, могут быть сгруппированы вместе. Вы загружаете их, когда пользователи получают доступ к этим конкретным страницам.

Сказав это, вы все равно должны поддерживать свою базу кода отдельно и искать библиотеку, которая может «построить» ваш код для производства. Что-то, что оптимизирует имена переменных (сокращает его), удаляет пробелы и объединяет JS-файлы в соответствии с вашей группировкой. Читаемость будет производиться в производстве, но это ускорит работу, и вы все равно сможете работать с чистым/читаемым кодом в среде dev.