Есть ли веская причина для того, чтобы JavaScript был встроенным?

StackOverflow https://stackoverflow.com/questions/1064166

Вопрос

Я занимаюсь созданием сайта.На каком-то этапе я заметил, что дисплей IE был немного сломан, а Chrome практически ничего не отображал, кроме тега body (пустого), а FF выглядел хорошо.

Разбросав клавиатуру по комнате и ударившись головой о мышь, я обнаружил проблему.Я оставил (не спрашивайте, как и почему, должно быть, это была какая-то молниеносная ошибка вырезания и вставки) незакрытый HTML-комментарий во встроенном блоке сценария.

<script type="text/javascript">
        <!--
        ...
    </script>

Я предполагаю (не проверял), что проблема либо не возникла бы, либо проявилась бы гораздо более заметно, если бы сценарий был внешним.В любом случае, я задумался: бывает ли когда-нибудь действительно веская причина писать встроенный скрипт??

Это было полезно?

Решение

Другие советы

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

А в некоторых случаях вы включаете Javascript от стороннего поставщика, и у вас фактически нет выбора.На ум приходят определенные рекламные системы, а также Google Analytics.

Если сценарий должен генерироваться динамически (скажем, на странице PHP или ASP.NET MVC), это будет одной из причин для его встроенного :-)

Зависит от того, сколько JS вы планируете написать.Если вы пишете много вспомогательных процедур (много проверок, обработка текста, анимация и эффекты), то имеет смысл хранить код в отдельном файле.Это позволяет повторно использовать код и удаляет много мусора с вашей HTML-страницы.

С другой стороны, нет необходимости помещать 10 строк кода или одну функцию (на ум приходит обновление JS) в отдельный файл.Он также будет загружаться немного быстрее, поскольку браузеру не нужно делать дополнительный HTTP-запрос для загрузки отдельного JS-файла.

Большинство XSS-уязвимостей можно использовать только с помощью встроенного JavaScript.

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

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

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

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

Я много работаю над чем-то под названием Flex, которое объединяет XML и ActionScript для создания окончательного байт-кода.Это ВСЕГДА Лучше всего разделить эти два понятия, насколько это возможно.Таким образом, вы можете очень четко и легко отделить представление (в моем случае HTML или MXML) от контроллера (скрипта).

Это также означает, что вам не нужно беспокоиться о просмотре пяти файлов для одной строки кода — весь ваш код находится в одном месте.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top