Подтвердить что ты не робот

Разница в производительности и объеме памяти между ссылками на Javascript с использованием src или непосредственным вводом его в HEAD

Каковы различия в производительности и объеме памяти, если таковые имеются, в этих разных подходах:

1. Используя Src

<script type='text/javascript" src="1MBOfjavascript.js"></script> 

2. Прямое введение в голову

$('head').append("<script type='text/javascript'>1MBOfJavascriptCode</script>");

Мне интересно, потому что мы разрабатываем приложение Cordova, где мы используем второй метод для Inject to DOM ранее загруженного пакета Javascript, который читается из локального хранилища HTML.

Учитывая, что размер script, вероятно, возрастет, я хотел бы знать, может ли со вторым методом возникнуть проблема с памятью или другая проблема с DOM.

4b9b3361

Ответ 1

Я считаю, что накладные расходы в таких случаях должны быть незначительными, поскольку основное потребление/потребление памяти основано на том, как работает фактический script. Т.е. память, используемая файлом, будет общим размером script, что составляет 1 МБ при макс.? Однако во время выполнения тот же самый script может легко использовать до 100 МБ.

В любом случае, подходит к делу.

Включение обычного текста было бы лучше, если оно должно быть включено во всех случаях, поскольку оно пропускает выполнение script, а также не вызывает повторного рендеринга браузером после добавления.  Параметр Append следует использовать в тех случаях, когда вам нужно только script при определенных условиях на стороне клиента и не загружать его необязательно.

Ответ 2

Браузер просматривает все элементы перед тем, как отображать страницу, поэтому я бы предположил, что это точно то же самое, если что-либо, если у вас есть скрипты после загрузки страницы, есть вероятность, что вы получите ошибки типа "вызов undefined функции", если вы вызываете функцию, добавленную после загрузки. Мой совет будет добавлять их при загрузке с помощью src, но держать вещи в порядке.

Ответ 3

Javascript сильно влияет на то, как и где вы загружаете файл, есть много способов загрузить файл или код.

Первый метод, который вы упомянули, является обычным способом загрузки файла javascipt, который является файлом загрузки с использованием src, и обычно его загружает перед закрывающим тегом </head>, но теперь в тренде загружается файл для вашего тега </body>. это ускоряет загрузку приложения и ускоряет подготовку DOM.

Второй метод, очевидно, не является хорошим способом загрузки javascript сначала, так как может быть некоторый код, который должен работать только после того, как ваш DOM готов, и поскольку здесь вы загружаете javscript с помощью javascript/jquery append, который зависит от вашего jquery загрузка файла, что задержит выполнение кода. и может быть возможно, что некоторые из вашего кода не будут иметь желаемого вывода (в зависимости от того, как вы вызывали функции и насколько они зависят от готовности DOM)

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

асинхронная загрузка также может быть проверена.

Ответ 4

Я думаю, потому что поведение браузера после получения ответа от любого веб-сервера попытается разобрать все элементы сначала для создания DOm, после того, как DOM будут готовы, тогда ваш script будет выполнен, на основании этого очевидно его основная причины - это первый будет выполняться первым, чем вводить его. О втором методе Я думаю, что движок javascript в каждом браузере может легко справиться с этой задачей и решить любую проблему. движок не заботится о размере, на самом деле это только о том, как долго script будет загружен, а затем будет выполнен. что будет проблемой, когда вы пытаетесь внедрить любые элементы в DOM, когда вы пытаетесь сделать это в цикле, может возникнуть проблема с памятью.

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