Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: для новичков > Вставка HTML с помощью JavaScript


Автор: Rayled 23.10.2010, 17:09
Добрый день. Как я уже говорил, в JS я пока новичок.
У меня на страницах есть два куска кода, которые полностью повторяются. Вес каждого из них почти 10 килобайт.
Я вот подумал, а почему бы мне один кусок не вставлять с помощью JS, ведь тогда страница будет быстрее грузиться, тк внешний файл JS кешируется, да поисковикам это понравится.
Знаю, что вставлять можно например так:
Код

document.getElementById('idElement').innerHTML = '<div>Содержимое.</div>';

У меня несколько вопросов:
1. Прав ли я насчет ускорения загрузки, поисковиков, да и вообще плюсов такого подхода и минусов (кроме отключенного JS в браузере).
2. Тот пример, который я указал выше, вставляет HTML-код в определенный элемент с id, а можно ли вставить просто в определенное место страницы. Например есть такой код:
Код

<div class="div">
 <p>bla-bla-bla</p>
 <p>bla-bla-bla</p>
</div>

Как здесь вставить код сразу под вторым параграфом? Предполагаю, что можно указать в нужном месте что-то типа следующего, но только в отдельном JS-файле:
Код

 <script type="text/javascript">
  document.write('<div>Содержимое.</div>')
 </script>

Но помню я читал про какие-то минусы document.write... Может есть лучший способ.

Автор: smartov 24.10.2010, 11:53
Личное мнение: Подход плохой. Поисковикам не понравится. Пользователям тоже не понравится. Если ускорение и будет, то незначительное, а недостатки в виде javascript могут сделать сайт непросматриваемым в каком-нибудь не шибко продвинутом браузере. Либо если js-код будет написан не очень кроссплатформенно и в каком-нибудь Opera работать не будет. В общем на двух элементах экономить смысла особо нет. Ладно если б их штук 5 было.

Цитата(Rayled @  23.10.2010,  17:09 Найти цитируемый пост)
можно ли вставить просто в определенное место страницы.

Можно, но это не так просто, как innerHTML.
Нужно читать про функции createElement и appendChild

Автор: Rayled 24.10.2010, 12:53
smartov, спасибо за ответ, но не совсем понял  вас.

Цитата(smartov @  24.10.2010,  11:53 Найти цитируемый пост)
В общем на двух элементах экономить смысла особо нет. Ладно если б их штук 5 было.


Что значит на двух элемента? У меня не два элемента, а два куска HTML-кода одинаковые. Вес каждого куска примерно 10 килобайт... Поэтому я и подумал, что один кусок оставить поисковикам, а второй - в скрипт. Что касается пользователей с отключенным JS, то конечно неудобства им прибавиться, но не критично. И еще, а почему поисковикам не понравится? Спасибо.

Автор: smartov 24.10.2010, 18:41
Rayled, вы показали пример, как если каждый кусок представляет из себя див. Див - элемент. Но наверное мне лучше было сказать "копия". Ради того, чтобы не создавать вторую копию 10 килобайт я бы не городил javascript. 

Поисковикам не понравится, потому что у них джаваскрипт тоже не включен и текст они не увидят. Ну кроме гугл. Тот умеет частичто джаваскрипт отрабатывать.

Автор: Rayled 24.10.2010, 19:07
smartov, спасибо за разъяснения. smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)