Являются ли комментарии HTML внутри тегов script лучшей практикой?

Следующая практика довольно распространена в встроенном JavaScript, с которым я должен работать:

<script type="text/javascript">
   <!--
       // Code goes here
   //-->
</script>

Я знаю, что дело в том, чтобы предотвратить браузер, который несовместим с JavaScript от рендеринга источника, но разве это по-прежнему является лучшей практикой сегодня? Подавляющее большинство используемых сегодня браузеров могут интерпретировать JavaScript; даже современные мобильные устройства обычно не имеют проблем.

Что касается "почему бы и нет"? Вопрос: Недавно мне пришлось потратить несколько часов на отладку проблемы, когда кто-то оставил "//" перед "- > " в конце тега script, глубоко погруженного на некоторые страницы, и это вызывало загадочные ошибки JavaScript.

Чем вы занимаетесь? Это все еще считается "лучшей практикой?"

Ответ 1

Важно то, что в настоящее время, независимо от того, поддерживает ли конкретный браузер JavaScript или нет, это не имеет значения (очевидно, что подавляющее большинство делает это) - это не имеет значения, потому что почти все понимают блоки script, что означает, что они знают, что игнорируют JavaScript даже если они не могут его интерпретировать.

Мэтт Крузе дает немного более подробное объяснение на своем сайте JavaScript Toolbox, почему именно не использовать комментарии HTML в блоках script.

Цитата из этой страницы:


Не использовать комментарии HTML В script Блоки

В древние дни javascript (1995) некоторые браузеры, такие как Netscape 1.0, не имели поддержки или знания тега script. Поэтому, когда javascript был впервые выпущен, понадобилась техника, чтобы скрыть код от старых браузеров, чтобы они не отображали его как текст на странице. "Hack" должен был использовать комментарии HTML в блоке script, чтобы скрыть код.

Использование комментариев HTML В script Плохо

// DON'T do this! Code is just representative on how things were done
<script language="javascript">
<!--
   // code here
//-->
</script>

Сегодня нет широко распространенных браузеров, которые не знают о <script> , поэтому скрытие источника javascript больше не требуется. Фактически, это можно считать вредным по следующим причинам:

  •   
  • В документах XHTML источник фактически будет скрыт от всех браузеров и окажется бесполезным   
  • - не допускается в комментариях HTML, поэтому любые операции уменьшения в script являются недопустимыми

Ответ 2

Я перестала это делать. В какой-то момент вам просто нужно отпустить свою мозаику NCSA.

Ответ 3

Нет, это похмелье из обходного пути, используемого, когда элемент script был впервые введен. Сегодня ни один браузер не понимает элемент script (даже если он понимает его как "Script, который следует игнорировать, поскольку сценарии отключены или неподдерживаются" ).

В XHTML они активно вредны.

Я что-то писал о истории его некоторое время назад.

Ответ 4

В соответствии с Рекомендацией W3C было в основном полезно скрыть данные script от АГЕНТОВ ПОЛЬЗОВАТЕЛЯ.

Цитируется на странице W3c:

Комментирование скриптов в JavaScript Механизм JavaScript позволяет строке "<!--" встречаться в начале элемента script и игнорирует дальнейшие символы до конца строки. JavaScript интерпретирует "//" как начало комментария, распространяющегося до конца текущей строки. Это необходимо, чтобы скрыть строку "- > " от парсера JavaScript.

    <SCRIPT type="text/javascript">
<!--  to hide script contents from old browsers
  function square(i) {
    document.write("The call passed ", i ," to the function.","<BR>")
    return i * i
  }
  document.write("The function returned ",square(5),".")
// end hiding contents from old browsers  -->
</SCRIPT>

Ответ 5

Остановилось, используя это некоторое время назад. Кроме того, согласно Дуглас Крокфорд, вы можете удалить атрибут type из тэгов script, так как единственным языком сценариев, доступным в большинстве браузеров, является JavaScript.

Ответ 6

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

Относительно вашей озабоченности: большинство браузеров сегодня безопасны для JavaScript. Однако иногда люди могут писать простые синтаксические анализаторы для непосредственного получения HTML-кода, и я должен сказать, что безопасная цитата действительно полезна для этих клиентов. Также некоторые не-JS-клиенты, такие как старая Lynx, получат преимущества от этого.

Ответ 7

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

Ответ 8

Я бы рекомендовал использовать раздел CDATA, как описано в этом вопросе.

Ответ 9

Я прекратил заниматься этим много лет назад. Вы действительно не нуждаетесь в этом в этот день и в возрасте.

Ответ 10

Я не делаю этого, но на днях я пошел проверять свой защищенный паролем сайт на w3c. Поэтому мне пришлось использовать их метод прямого ввода. Он жаловался на мой javascript, поэтому я добавил комментарии во всем, что было хорошо.