JavaScript и HTML: в двух отдельных файлах или в одном файле HTML? - PullRequest
0 голосов
/ 08 мая 2018

Есть ли разница, когда мы пишем оба кода HTML и JavaScript в одном файле .html или пишем код HTML в файле .html и JavaScript в файле .js отдельно? Я имею ввиду функциональность в обоих случаях одинакова?

ех. здесь: https://github.com/tomconte/solarchain-dashboard HTML и JavaScript записаны в двух отдельных файлах .html и .js и в верхней части файла .js упоминается: ПРИМЕЧАНИЕ: необходимо скомпилировать с browserify viz .js -o main.js .

Я имею в виду, если код JavaScript в файле viz.js записан в файле index.html, нам все еще нужно использовать browserify для компиляции JavaScript кода?

index.html файл: https://github.com/tomconte/solarchain-dashboard/blob/master/index.html

viz.js файл: https://github.com/tomconte/solarchain-dashboard/blob/master/viz.js

Ответы [ 2 ]

0 голосов
/ 08 мая 2018

Хранение javascript отдельно в файле улучшит производительность загрузки страницы. Встраивание JavaScript в html-файл может блокировать рендеринг html.

Во встроенном сценарии время, затрачиваемое на выполнение сценария, может изменить DOM. Попытка визуализировать DOM, пока он мутирует, является рецептом путаницы. Таким образом, рендеринг происходит только в точках, когда JS остановлен, и, следовательно, DOM стабилен.

Во время ожидания загрузки внешнего сценария выполнение сценариев останавливается, поэтому DOM можно безопасно отобразить. Загруженный JS не будет запущен, пока не завершится рендеринг.

Так что это одна из причин, по которой файлы html файлов отделяются от файлов javascript.

Также поддержка Javascript в файлах будет проще, чем встраивание в html.

0 голосов
/ 08 мая 2018

К в двух отдельных файлах или в одном файле HTML?

Без разницы.

Просто браузер должен отправить дополнительный http запрос на загрузку файла при добавлении js файла в тег * <script>.

Но рекомендуется писать код в отдельном js-файле, поэтому было бы легко изменить его и отразить эти изменения во всех html файлах, где бы этот js-файл не был связан, в противном случае вам придется изменить JS код в каждом файле и т. д.

...