Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
JSON to HTML - лучший способ?
|
|||
|---|---|---|---|
|
#18+
Есть JSON с маской и мачете постоянным набором ключей. Есть контейнер (допустим, условный div), который должен принять этот распарсенный JSON. JSON состоит из маски и мачете простых строчных данных, а также нескольких массивов. Размер массивов может меняться от запроса к запросу. Как лучше превратить JSON в HTML? У меня есть два основных варианта. 1 - всё сделать на джаваскрипте (jQuery). 2 - сделать "скелет" из HTML с назначенными айдишниками и классами, а потом в этот HTML вставлять данные из JSON (наверное, методом findById/paste или чем-то в этом роде - что там у jQuery есть). Проблема в том, что я в джаваскрипте и jQuery новичок, поэтому мне кажется, что вариант 1 будет для меня трудноватым. А второй вариант вроде как не предусматривает динамическое создание тегов с их атрибутами (всё уже есть в статике), а только считывание из JSON и вставку в нужный тег по айдишнику тега или как-то так. Кто что посоветует? Если можно, приведите пример, пожалуйста, для первого варианта и для второго. Скажем, в первом варианте создаём такой-то тег, добавляем такие-то атрибуты, назначаем такие-то айди и класс, вставляем в тег такие-то данные из JSON. И для второго варианта тоже в этом же роде: ищем в HTML тег с таким-то айди и вставляем в него такие-то данные из JSON. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2013, 11:14 |
|
||
|
JSON to HTML - лучший способ?
|
|||
|---|---|---|---|
|
#18+
Нормальные люди для этого используют шаблоны. В качестве шаблонизатора можно выбрать, к примеру, xslt или razor. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2013, 11:17 |
|
||
|
JSON to HTML - лучший способ?
|
|||
|---|---|---|---|
|
#18+
МСУНормальные люди для этого используют шаблоны. В качестве шаблонизатора можно выбрать, к примеру, xslt или razor. Эмм... Ну, я использую Razor по-умолчанию. Только как это поможет создать у клиента нужный кусок разметки? Это же серверная штука. ...А, я забыл сказать, что JSON приходит асинхронным запросом. Это же что-то меняет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2013, 11:22 |
|
||
|
JSON to HTML - лучший способ?
|
|||
|---|---|---|---|
|
#18+
user7320Эмм... Ну, я использую Razor по-умолчанию. Только как это поможет создать у клиента нужный кусок разметки? Это же серверная штука. Шаблон лежит на сервере в виде разор разметки, из js клиента ты его поднимаешь, передаешь параметры, и разором на сервере происходит маппинг. На клиенте ты пролучаешь готовый html. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2013, 11:25 |
|
||
|
JSON to HTML - лучший способ?
|
|||
|---|---|---|---|
|
#18+
раз уж зашел разговор про jQuery то под него и шаблонизатор есть (и кажись не один) http://habrahabr.ru/post/112843/ и по-моему автор не тот форум выбрал для своего вопроса ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2013, 11:25 |
|
||
|
JSON to HTML - лучший способ?
|
|||
|---|---|---|---|
|
#18+
2 сразу отказать. 1 не настолько сложно, как кажется. 3й вариант является комбинацией первых двух — тынц ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2013, 11:26 |
|
||
|
JSON to HTML - лучший способ?
|
|||
|---|---|---|---|
|
#18+
Самый простой вариант, хранить шаблон на клиенте: Код: html 1. 2. 3. 4. 5. 6. И вручную его намапить: Код: javascript 1. 2. 3. 4. Ну и отрисовать html в нужном месте. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2013, 11:29 |
|
||
|
JSON to HTML - лучший способ?
|
|||
|---|---|---|---|
|
#18+
Глубоко с jQuery хотелось бы разбираться в последнюю очередь, но советы по ним потом посмотрю, если другого ничего не выйдет. МСУСамый простой вариант, хранить шаблон на клиенте: Код: html 1. 2. 3. 4. 5. 6. И вручную его намапить: Код: javascript 1. 2. 3. 4. Ну и отрисовать html в нужном месте. Шаблон - это и есть мой второй вариант, как я понял. А не могли бы вы дать ссылку на статью с подробным описанием этого действа c шаблонами, включая то, как отрисовать получившийся html в нужном месте? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2013, 11:46 |
|
||
|
JSON to HTML - лучший способ?
|
|||
|---|---|---|---|
|
#18+
Чтобы ясно стало, я сценарий полностью проговорю. Есть страница со ссылками. Кликаешь на ссылку - идёт ajax на сервер, который возвращает json с описанием объекта. Описание должно появиться справа от ссылок. Вроде, всё стандартно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2013, 11:50 |
|
||
|
JSON to HTML - лучший способ?
|
|||
|---|---|---|---|
|
#18+
Если хранить шаблон на сервере, то придётся вставлять его как raw на клиенте, как я понимаю. А это не совсем гуд с точки зрения безопасности. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2013, 11:51 |
|
||
|
JSON to HTML - лучший способ?
|
|||
|---|---|---|---|
|
#18+
user7320Чтобы ясно стало, я сценарий полностью проговорю. Есть страница со ссылками. Кликаешь на ссылку - идёт ajax на сервер, который возвращает json с описанием объекта. Описание должно появиться справа от ссылок. Вроде, всё стандартно.вот если бы при клике на ссылке происходил переход по этой ссылке, тогда было бы стандартно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2013, 11:52 |
|
||
|
JSON to HTML - лучший способ?
|
|||
|---|---|---|---|
|
#18+
user7320Чтобы ясно стало, я сценарий полностью проговорю. Есть страница со ссылками. Кликаешь на ссылку - идёт ajax на сервер, который возвращает json с описанием объекта. Описание должно появиться справа от ссылок. Вроде, всё стандартно. knockout.js ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2013, 12:25 |
|
||
|
JSON to HTML - лучший способ?
|
|||
|---|---|---|---|
|
#18+
МСУИ вручную его намапить: Код: javascript 1. 2. 3. 4. Ну и отрисовать html в нужном месте. МСУ, нафига, если есть jquery templates(о чем писал выше Паганель) плюсую за них ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2013, 12:36 |
|
||
|
JSON to HTML - лучший способ?
|
|||
|---|---|---|---|
|
#18+
При чём жКвери и JSON? JSON прекрасно преобразуется (или даже является, смотря как передать на страницу) структурированым объектом javascript. Какое нафиг жквери? Чистый яваскрипт. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2013, 12:46 |
|
||
|
JSON to HTML - лучший способ?
|
|||
|---|---|---|---|
|
#18+
BoneshockМСУ, нафига, если есть jquery templates(о чем писал выше Паганель) плюсую за них Я вообще за серверный шаблонизатор razor, а не за клиентский. Он рулит. Шаблон на сервере, нормальная модель представления и всё такое. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2013, 12:59 |
|
||
|
JSON to HTML - лучший способ?
|
|||
|---|---|---|---|
|
#18+
ShSergeПри чём жКвери и JSON? JSON прекрасно преобразуется (или даже является, смотря как передать на страницу) структурированым объектом javascript. Какое нафиг жквери? Чистый яваскрипт. дада, мы помним, CGI и Vanilla javascript, спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2013, 13:02 |
|
||
|
JSON to HTML - лучший способ?
|
|||
|---|---|---|---|
|
#18+
Паганельuser7320Чтобы ясно стало, я сценарий полностью проговорю. Есть страница со ссылками. Кликаешь на ссылку - идёт ajax на сервер, который возвращает json с описанием объекта. Описание должно появиться справа от ссылок. Вроде, всё стандартно.вот если бы при клике на ссылке происходил переход по этой ссылке, тогда было бы стандартно А зачем переход? Ссылки - это на самом деле дерево ссылок. Переход - это полностью новая сгенеренная на сервере страница, включая это дерево. Не лучше ли только кусочек со статьёй обновить асинхронно? Тем более, что с деревом придётся возиться - запоминать, какие узлы были открыты, какие закрыты, какой узел был выбран. Да, про дерево я забыл сказать, извините. BoneshockМСУИ вручную его намапить: Код: javascript 1. 2. 3. 4. Ну и отрисовать html в нужном месте. МСУ, нафига, если есть jquery templates(о чем писал выше Паганель) плюсую за них Это? ShSergeПри чём жКвери и JSON? JSON прекрасно преобразуется (или даже является, смотря как передать на страницу) структурированым объектом javascript. Какое нафиг жквери? Чистый яваскрипт. Приведите пример, пожалуйста. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2013, 13:03 |
|
||
|
JSON to HTML - лучший способ?
|
|||
|---|---|---|---|
|
#18+
user7320...Приведите пример, пожалуйста. Не приведу. Не хочу. Сами по форуму ищите. Я плакаю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2013, 13:08 |
|
||
|
JSON to HTML - лучший способ?
|
|||
|---|---|---|---|
|
#18+
BoneshockShSergeПри чём жКвери и JSON? JSON прекрасно преобразуется (или даже является, смотря как передать на страницу) структурированым объектом javascript. Какое нафиг жквери? Чистый яваскрипт. дада, мы помним, CGI и Vanilla javascript, спасибо А что такое "Vanilla"? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2013, 13:10 |
|
||
|
JSON to HTML - лучший способ?
|
|||
|---|---|---|---|
|
#18+
ShSergeА что такое "Vanilla"? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2013, 13:12 |
|
||
|
JSON to HTML - лучший способ?
|
|||
|---|---|---|---|
|
#18+
user7320, ещё раз. knockout.js идёт в комплекте стандартного шаблона MVC 4 повторить? там и темлейты есть, и биндинг JSON модели полученной по AJAX. в общем всё есть. в коробке. подключи всего 1 js файл, и не парь себе и людям голову туториалы на сайте разберётся с ними ребёнок за пол часа. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2013, 13:15 |
|
||
|
JSON to HTML - лучший способ?
|
|||
|---|---|---|---|
|
#18+
hVosttShSergeА что такое "Vanilla"? Чё ржошь? Все знают, а я - нихрена не знаю. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2013, 13:15 |
|
||
|
JSON to HTML - лучший способ?
|
|||
|---|---|---|---|
|
#18+
МСУBoneshockМСУ, нафига, если есть jquery templates(о чем писал выше Паганель) плюсую за них Я вообще за серверный шаблонизатор razor, а не за клиентский. Он рулит. Шаблон на сервере, нормальная модель представления и всё такое. Я никак не могу понять, про какие шаблоны вы говорите? Вот мой код представления. Там менюшка слева и место для статьи о товаре справа. Скриптик, который асинхронно запрашивает статью о товаре и начатки "шаблона статьи". В скрипт я пока поставил заглушку в виде алерта. Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2013, 13:17 |
|
||
|
JSON to HTML - лучший способ?
|
|||
|---|---|---|---|
|
#18+
hVosttShSergeА что такое "Vanilla"? Чё ржошь? Все знают, а я - нихрена не знаю. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2013, 13:17 |
|
||
|
JSON to HTML - лучший способ?
|
|||
|---|---|---|---|
|
#18+
+1 за knockout.js, если уж хочется клиентский шаблон ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2013, 13:18 |
|
||
|
JSON to HTML - лучший способ?
|
|||
|---|---|---|---|
|
#18+
user7320 Это? Ну как тебе больше нравится. Плагин-то один , а уж где ты его будешь юзать(мвц, формы) - сам решай ShSergeА что такое "Vanilla"? Вот . Уверен, Серж, ты будешь рад, прочитав. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2013, 13:18 |
|
||
|
JSON to HTML - лучший способ?
|
|||
|---|---|---|---|
|
#18+
hVostt, А-а-а! Понял. Фреймворк. Но для сабжа вообще никаких фпеймворков и нафиг не нужно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2013, 13:19 |
|
||
|
JSON to HTML - лучший способ?
|
|||
|---|---|---|---|
|
#18+
ShSergeА-а-а! Понял. Фреймворк. Но для сабжа вообще никаких фпеймворков и нафиг не нужно. похоже до сих пор не понял прочитай по ссылке до конца, а лучше зацени комментарии ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2013, 13:20 |
|
||
|
JSON to HTML - лучший способ?
|
|||
|---|---|---|---|
|
#18+
user7320Я никак не могу понять, про какие шаблоны вы говорите? Я тебе уже писал, шаблон хранится на сервере. Для работы ему нужна модель. Его рендерить нужно на сервере. Если нужно с клиента поднять шаблон, для этого есть $.ajax. Что не понятно-то? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2013, 13:20 |
|
||
|
JSON to HTML - лучший способ?
|
|||
|---|---|---|---|
|
#18+
ShSergehVostt, А-а-а! Понял. Фреймворк. кажется все еще не понял ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2013, 13:20 |
|
||
|
JSON to HTML - лучший способ?
|
|||
|---|---|---|---|
|
#18+
А кто-нибудь ставил и использовал ASP.NET and Web Tools 2012.2 ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2013, 13:25 |
|
||
|
JSON to HTML - лучший способ?
|
|||
|---|---|---|---|
|
#18+
skyANAА кто-нибудь ставил и использовал ASP.NET and Web Tools 2012.2 ? да. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2013, 13:26 |
|
||
|
JSON to HTML - лучший способ?
|
|||
|---|---|---|---|
|
#18+
hVosttskyANAА кто-нибудь ставил и использовал ASP.NET and Web Tools 2012.2 ? да.Ну и как? Полезно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2013, 13:35 |
|
||
|
JSON to HTML - лучший способ?
|
|||
|---|---|---|---|
|
#18+
А создание дерева с событиями на чистом JS есть, а не в виде плагина к jQuery? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2013, 13:39 |
|
||
|
JSON to HTML - лучший способ?
|
|||
|---|---|---|---|
|
#18+
user7320А создание дерева с событиями на чистом JS есть, а не в виде плагина к jQuery? есть :) но при такой постановке задачи, больше добавить нечего. попробуйте knockout.js, если не понравится, других аналогов целое ведро ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2013, 13:46 |
|
||
|
JSON to HTML - лучший способ?
|
|||
|---|---|---|---|
|
#18+
skyANAНу и как? Полезно? ещё бы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2013, 13:48 |
|
||
|
JSON to HTML - лучший способ?
|
|||
|---|---|---|---|
|
#18+
hVostt, а Single Page Application (SPA) template использовал? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2013, 13:52 |
|
||
|
JSON to HTML - лучший способ?
|
|||
|---|---|---|---|
|
#18+
skyANAhVostt, а Single Page Application (SPA) template использовал? использовал. но честно говоря, это всего лишь некий паттерн. принципиально со стороны сервера ничем не отличается от обычного приложения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2013, 13:54 |
|
||
|
JSON to HTML - лучший способ?
|
|||
|---|---|---|---|
|
#18+
hVosttskyANAhVostt, а Single Page Application (SPA) template использовал? использовал. но честно говоря, это всего лишь некий паттерн. принципиально со стороны сервера ничем не отличается от обычного приложения.ТСу данный шаблон может помочь? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2013, 14:02 |
|
||
|
JSON to HTML - лучший способ?
|
|||
|---|---|---|---|
|
#18+
skyANAТСу данный шаблон может помочь? вряд ли. по ходу что он хочет, так это некий волшебный "компонент", который сделает всё сам как надо, и при этом не надо разбираться как это всё в итоге работает )) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2013, 14:05 |
|
||
|
JSON to HTML - лучший способ?
|
|||
|---|---|---|---|
|
#18+
hVosttskyANAТСу данный шаблон может помочь? вряд ли. по ходу что он хочет, так это некий волшебный "компонент", который сделает всё сам как надо, и при этом не надо разбираться как это всё в итоге работает ))То есть даже сгенерированный по шаблону код, ему не поможет понять, что и как писать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2013, 14:11 |
|
||
|
JSON to HTML - лучший способ?
|
|||
|---|---|---|---|
|
#18+
skyANAТо есть даже сгенерированный по шаблону код, ему не поможет понять, что и как писать? там даже деревьев нету, о чем вообще говорить? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2013, 14:16 |
|
||
|
JSON to HTML - лучший способ?
|
|||
|---|---|---|---|
|
#18+
hVosttskyANAТСу данный шаблон может помочь? по ходу что он хочет, так это некий волшебный "компонент", который сделает всё сам как надо, и при этом не надо разбираться как это всё в итоге работает )) Да, я не хочу разбираться, как оно там всё работает. Я хочу указать на ul, и чтобы мне из него сделали интерактивное дерево. И чтобы клики были и асинхронная загрузка. Я вообще не люблю джаваскрипт. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2013, 14:51 |
|
||
|
JSON to HTML - лучший способ?
|
|||
|---|---|---|---|
|
#18+
user7320, не тормози, покупай ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2013, 15:01 |
|
||
|
JSON to HTML - лучший способ?
|
|||
|---|---|---|---|
|
#18+
Вобщем, всё получилось с использованием простенькой jquery.treeview (с jstree хрен разберёшься - ковырял-ковырял, да невыковырял) и Нокаута. Только вопрос остался. Вот у меня функция вызывается на каждый клик по ссылке и на каждый такой клик отправляется JSON, который и приходит в виде data в эту функцию. Но при первой загрузке страницы у меня собственно нет модели представления, т. к. я использую автомаппинг (плагин mapping для Нокаута) и эту модель мне этот маппинг создаёт. Как лучше обработать эту ситуацию - ведь после первого запроса модель уже создана и её можно использовать и дальше. Мне для этого пришлось ввести переменную firstQuery, нужную для создания модели при первом запросе. На последующих запросах я только перебайндингую свойства модели. Второй вопрос. Вызывать каждый раз applyBindings надо, т. к. mapping.fromJS каждый раз возвращает новый объект. Чтобы вызывать эту функцию только один раз (т. е. затолкать её в блок if (firstQuery == true) ), надо самому ручками создать обычную модель представления и ручками же каждый раз обновлять её свойства: http://stackoverflow.com/a/15385398/808128 . Ну, а поскольку я уж использую автомаппинг, то вот - на каждый запрос applyBindings. Может, можно как-то разрулить эту ситуацию, чтобы и руками модель не создавать, и applyBindings на каждый запрос не вызывать? Код: javascript 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. По второму вопросу пока придумал только при создании страницы отправить сразу асинхронный запрос на сервер и вызвать mapping.fromJS(data), а затем applyBindings - т. е. ещё до первого пользовательского ввода - тем самым создать модель представления с привязками, которую уже затем использовать на каждый запрос пользователя с перегрузкой mapping.fromJS(data, viewModel). Как вам такое решение? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2013, 17:02 |
|
||
|
JSON to HTML - лучший способ?
|
|||
|---|---|---|---|
|
#18+
Решил остановиться на глобальной переменной. Всякие пустые модели для начальной инициализации создавать и передавать - лишние усилия. Только правильный код будет не тот, что выше, а вот такой. Интересно, что если firstQuery = false; поставить не перед вызовом applyBindings, а после, то до него выполнение даже не дойдёт - (проверил в дебаггере браузерном). Интересно, почему? Код: javascript 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2013, 13:00 |
|
||
|
JSON to HTML - лучший способ?
|
|||
|---|---|---|---|
|
#18+
user7320Интересно, что если firstQuery = false; поставить не перед вызовом applyBindings, а после, то до него выполнение даже не дойдёт - (проверил в дебаггере браузерном). Интересно, почему? Имеется ввиду, что не дойдёт до firstQuery = false; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.11.2013, 13:01 |
|
||
|
|

start [/forum/topic.php?all=1&fid=18&tid=1357957]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
43ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
94ms |
get tp. blocked users: |
1ms |
| others: | 221ms |
| total: | 400ms |

| 0 / 0 |
