Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 19.12.2011, 11:24
Интересующийся
Отправить личное сообщение для id5555 Посмотреть профиль Найти все сообщения от id5555
 
Регистрация: 11.07.2011
Сообщений: 11

Создание модульного приложения
Есть html куски, которые должны грузится в зависимости от определенных условий. Можно подгружать js скрипты в которых будет что-то подобное:
document.getElementById(CONTAINER_ID).innerHTML = "<div>...</div>";

Но html слишком большие, и редактировать их не удобно. Есть ли способ загружать html(или что-либо ещё) файлы и встраивать их динамично?

Надеюсь понятно объяснил
Ответить с цитированием
  #2 (permalink)  
Старый 19.12.2011, 11:41
Аватар для Skipp
.
Отправить личное сообщение для Skipp Посмотреть профиль Найти все сообщения от Skipp
 
Регистрация: 30.03.2010
Сообщений: 1,813

Насчёт html: читайте про ajax.
А насчёт файлов: не представляю о каких файлах идёт речь
__________________
.
Ответить с цитированием
  #3 (permalink)  
Старый 19.12.2011, 12:34
Интересующийся
Отправить личное сообщение для id5555 Посмотреть профиль Найти все сообщения от id5555
 
Регистрация: 11.07.2011
Сообщений: 11

Спасибо. Нашел здесь: http://stackoverflow.com/questions/5...l-js-with-ajax

Необходимо было следующее:
$.ajax({ url: 'http://aaa.ru/bbb.html', success: function(html){
  $('#container').html(html);
}
Ответить с цитированием
  #4 (permalink)  
Старый 19.12.2011, 12:48
Аспирант
Отправить личное сообщение для ASerputko Посмотреть профиль Найти все сообщения от ASerputko
 
Регистрация: 20.10.2010
Сообщений: 73

Первый вариант ajax-ом
Второй вариант с тегом <script>
...
<body>
    <div id="home"></div>
    <script type="text/html" id="template_1">
        //тут верстка
    </script>
    <script type="text/html" id="template_2">
        //тут верстка
    </script>
    ...
</body>

А с помощью скриптов делаешь следущее:
var template = $('#template_1').html();  // естественно id динамически определяются и подставляются.
$('#home').append(template);
Ответить с цитированием
  #5 (permalink)  
Старый 19.12.2011, 12:57
Аватар для Skipp
.
Отправить личное сообщение для Skipp Посмотреть профиль Найти все сообщения от Skipp
 
Регистрация: 30.03.2010
Сообщений: 1,813

ASerputko,
А какие преимущества в этом методе?
Мне кажется тут одни недостатки.
Заместо script уж лучше поставить скрытый div и просто по требованию его показывать.
__________________
.
Ответить с цитированием
  #6 (permalink)  
Старый 19.12.2011, 19:56
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

это лишний html.

а вот от jquery я бы посоветовал отказаться, если, конечно, она используется несколько шире, чем совершение ajax-запроса.
Ответить с цитированием
  #7 (permalink)  
Старый 19.12.2011, 20:22
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,121

Сообщение от id5555
Есть ли способ загружать html(или что-либо ещё) файлы и встраивать их динамично?
Серверные языки не используются принципиально?
Ответить с цитированием
  #8 (permalink)  
Старый 19.12.2011, 20:25
Аспирант
Отправить личное сообщение для ASerputko Посмотреть профиль Найти все сообщения от ASerputko
 
Регистрация: 20.10.2010
Сообщений: 73

Skipp,
Если открыть-закрыть картинку (какойнить блок с инфой), то да достаточно будет и спрятаных дивов. Но я предлагаю хранить там шаблоны, с переменными, форычами и т.д.
+ такой подход легко интегрируется в оффлайн приложение =)

ну к примеру
...
<script type="text/html" id="template_2">
        <div><%= title %></div>
        <% _.each(news, function (item) { %>
		<div><%= item %></div>
	<% }); %>
</script>
...

var data = {
    title : 'Last News!!!',
    news : [...] //тут перечень новостей... 
}
var template = _.template($('#template_2').html());
$('#home').append(template(data))
Ответить с цитированием
  #9 (permalink)  
Старый 20.12.2011, 09:34
Аватар для Skipp
.
Отправить личное сообщение для Skipp Посмотреть профиль Найти все сообщения от Skipp
 
Регистрация: 30.03.2010
Сообщений: 1,813

ASerputko,
По моему это извращение, есть более простые и не менее красивые способы.

В данном случаи человеку приходиться придумывать свою разметку, что после, допустим через пол года, будет не так просто вспомнить и я считаю это минусом номер один. Не вижу смысла делать разметку в разметке. И кстати, вы так и не сказали почему именно в script, так как тоже самое можно практически в любом другом элементе сделать.
__________________
.
Ответить с цитированием
  #10 (permalink)  
Старый 21.12.2011, 11:54
Аспирант
Отправить личное сообщение для ASerputko Посмотреть профиль Найти все сообщения от ASerputko
 
Регистрация: 20.10.2010
Сообщений: 73

Skipp,
1. script - скрывает содержимое внутри.
2. Область видимости id-шников, классов, тегов,...
...
<body>

    <div id="container"></div>
    <!--Templates -->
    <script type="text/html" id="template_1">
        <div id=container><%= context %></div>
    </script>
    <script type="text/html" id="template_2">
        <div id=container><%= context %></div>
    </script>
    ...
</body>


Если в загруженом html документе обратиться к id 'container', то будет доступ только к первому, который не обернут тегом <script>
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создание игр nyols Учебные материалы 8 11.09.2012 11:52
Создание скрипта "Итеррационные циклы" по формуле krasopetka Общие вопросы Javascript 0 17.11.2011 12:42
Нужно создание идентичного скрипта по диетам kuprum Работа 8 14.10.2011 19:03
как предотвратить повторное создание функции kichSman jQuery 3 06.09.2011 13:49
Создание скрипта! Создание диктанта для учеников! Елизавета Работа 10 30.06.2010 21:00