2016-08-22 5 views
1

Я пытался найти ответ на этот вопрос, но никогда не мог найти:Сценарий загрузки тегов внутри Iframes

У меня есть четыре Iframes нагрузки на родительской странице. Каждый из этих I-кадров имеет javascript для выполнения (немного разные JS в каждом).

В настоящее время я связал все это JS в один файл, который находится в теге в каждом из фреймов.

Поведение, которое я вижу, это то, что браузер испускает только один запрос к этому сценарию, так как он одинаковый для каждого кадра.

Мой вопрос: что, если бы я хотел получить меньшие пакеты, разделив этот файл JS на 4 меньших. как теги скриптов загружаются внутри iframe?

Если они загружены async: я мог бы получить некоторую производительность от него. Если они загружаются один за другим: тогда лучше иметь более крупный пучок и избегать нескольких поездок в оба конца.

ответ

2

IFrames работают почти так же, как и родительские страницы. Думайте об этом, открывая одновременно несколько вкладок в вашем браузере, каждый из которых пытается загрузить как можно быстрее, независимо от других страниц.

Использование одного большого пакета означает, что после того, как он завершит загрузку в любом iframe, браузер будет кэшировать его, а все остальные iframe, запрашивающие его, будут загружаться быстрее из кеша.

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

+0

Поскольку 4 фрейма добавляются одновременно, почему я вижу только один запрос, отправленный в комплект? Я понимаю, что он будет кэшироваться, если он был сначала загружен в iframe, а затем в других, но если он будет асинхронным, не будут ли они запускать один и тот же актив одновременно? Может быть, браузеры достаточно умны, чтобы увидеть, как в данный момент появляется конкретный источник? – XuoriG

+1

Браузер проверяет дубликаты запросов и автоматически их объединяет. Вы можете проверить это, сделав страницу с несколькими крупными изображениями, загружаемыми с того же URL-адреса. После того, как будет сделан один запрос, любые повторяющиеся URL-адреса будут просто копироваться на одном ресурсе. – Soviut