Как Minify, mod_pagespeed ... обрабатывают слияние файлов JavaScript - PullRequest
3 голосов
/ 29 июля 2011

Скажите, что на page1.html мне нужны mootools.js и main.js ... Я предполагаю, что эти инструменты должны генерировать один минимизированный js-файл (скажем, min1.js). Тогда на page2.html мне нужны mootools.js, main.js И page2.js ... Эти инструменты служат min1.js (уже кешируется браузером) и page2.js? Или они объединяют эти 3 файла .js и подают полученный минимизированный файл, который должен снова полностью кэшироваться браузером?

Спасибо

1 Ответ

1 голос
/ 28 сентября 2011

Предполагается, что вы используете модуль Apache mod_pagespeed, потому что вы пометили вопрос им, но не упомянули, если вы или нет ...

Если вы включите ModPagespeedEnableFilters combine_javascript (который по умолчанию отключен ), он будет работать на всей странице. Согласно документации :

Этот фильтр генерирует URL-адреса, которые по сути являются конкатенацией URL-адреса всех объединяемых CSS-файлов.

page1.html объединит mootools.js, main.js и page1.js; а page2.html будет mootools.js, main.js и page2.js.

Чтобы ответить на ваш вопрос, да, он кеширует несколько копий повторяющихся файлов JavaScript.

Тем не менее,

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

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

...