Что такое современные методы использования script type = "text/html" и этот пример считается хорошим использованием?

Что-то вроде...

<script type="text/html" id="this-content1">
<h1>This Header Info One</h1>
<p>This content one. . .</p>
</script>
<script type="text/html" id="this-content2">
<h1>This Header Info Two</h1>
<p>This content two. . .</p>
</script>

... и используя jQuery для замены контента на основе хорошей практики выбора в сегодняшних стандартах?

Я просто использую script type = "text/html"..., чтобы разрешить динамические изменения моего контента, и я нахожу много способов сделать это. Есть ли источник, который может объяснить направление, в котором это происходит, и если какая-либо стандартизация этой практики.

Я вижу код вроде...

<div class="thumbnail">
            <# if ( data.uploading ) { #>
                <div class="media-progress-bar"><div></div></div>
            <# } else if ( 'image' === data.type ) { #>
                <img src="{{ data.size.url }}" draggable="false" />
            <# } else { #>
                <img src="{{ data.icon }}" class="icon" draggable="false" />
            <# } #>
        </div>

... вложен в тег script type = "text/html" и действительно не имеет понятия, почему он написан таким образом. Также просто намочите мой клюв в позвоночник, и это выглядит немного тяжелым, если вы просто хотите добавить обмен содержимым на одной странице.

Ответ 1

В соответствии с спецификацией HTML5 для тега скрипта, совершенно нормально использовать <script> с атрибутом type установленным для любого допустимого типа MIME. Это включает в себя типы MIME, такие как text/html или text/plain.

Согласно спецификации HTML4 для тега скрипта, это не совсем нормально:

"Есть два типа авторов сценариев, которые могут быть прикреплены к HTML-документу: те, которые выполняются один раз, когда документ загружается [и t] шлангом, который выполняется каждый раз, когда происходит конкретное событие"

Вам не нужна основа для шаблонов. Вы можете использовать, например, jQuery или мой личный фаворит Mustache.js.

Ответ 2

Я предполагаю, что вы хотите сохранить часть HTML для использования позже. Ввод данных < script в тег script не имеет смысла. Делайте то, что делает Facebook!

<code class="hide" id="code1"><!--
  <p>My HTML here</p>
  <script>My Javascript here</script>
--></code>

Затем вы можете захватить HTML позже и сделать то, что захотите позже:

var html = document.querySelector('#code1').innerText.slice(5, -5)

Скрипты внутри не будут выполняться до тех пор, пока вы не обработаете их правильно.

Некоторые примечания:

  • Не знаю, какие различия между innerText и другими текстовыми функциями
  • Я не думаю, что вы можете просто вставить теги script в DOM. Не знаете, как это работает jQuery.