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


Автор: anking 21.9.2010, 02:06
суть:
необходимо в зугруженной странице в определенном месте в DIVе в нужный момент(при нажатии кнопки) отобразить таблицу, загруженную аяксом с сервера.
пробовал
document.getElementById('ID').innerHtml = response;  (response - html код таблицы)
но так код отображается не обрабатываясь браузером.... как бы это сделать чтобы он обрабатывался?

Автор: iluvatar 21.9.2010, 09:53
в смысле не обрабатывается браузером?

Но я включу режим ясновидящего и попробую угадать:
если выводится в виде <table><tr><td>.....
то вот вам http://ru.wikipedia.org/wiki/JSON#JavaScript_eval.28.29, авось и поможет

А вообще, передавать html с сервера я бы не стал. Все-таки это не в его компетенции решать КАК должно что-то выглядеть. Сервер должен вернуть вам ДАННЫЕ, а как их отобразить - проблемы исключительно КЛИЕНТА. А если завтра изменится верстка - вы полезете на серверную часть и будете править там в соответствии с вашими изменениями?
Я бы с сервера передал данные, которые надо отобразить, а на клиенте создал таблицу (или другой контейнер), содержащую эти данные.

Автор: ksnk 21.9.2010, 10:16
вероятнее всего речь идет о том, что ранее навешанные обработчики событий после вставки нового элемента внезапно для автора перестали (не начали) работать.

Цитата(iluvatar @  21.9.2010,  09:53 Найти цитируемый пост)
А вообще, передавать html с сервера я бы не стал. Все-таки это не в его компетенции решать КАК должно что-то выглядеть.

Не все так однозначно. Сервер вообще говоря УЖЕ знает как отображать данные. Все таки ту страничку, которая теперь занимается ajax'ом он как-то вывел smile Кто ему мешает знать как выглядит эта самая дополнительная табличка? В любом случае - такое знание будет полезно серверу, если на клиенте отключен JavaScript, а показывать информацию все-таки надо.
Другое дело, если объем декорации сильно больше объема реальных данных, тут уже можно подумать над тем, что передавать маленький объем json'а с серверу может оказаться значительно выгоднее большого html'я.

Автор: iluvatar 21.9.2010, 13:30
ksnk, понятно, что сервер изначально вернул эту страницу. 
Но я надеюсь автор не создавал ее вручную в выходном потоке, а использовал для этого jsp, jsf или что-то подобное. 
Просто я намекнул на MVC и то, что не надо мешать контроллер и отображение и неверно употребил понятие "сервер". В моем контексте - сервер это модель и логика, а клиент - способ отображения данных. Надеюсь, теперь стало яснее что я имел в виду.

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