Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 06.05.2015, 09:15
Профессор
Отправить личное сообщение для Tecvid Посмотреть профиль Найти все сообщения от Tecvid
 
Регистрация: 13.12.2013
Сообщений: 175

json vs plain text
добрый утро, нет, я раздел не перепутал, просто почитайте до конца и вы всё поймёте

есть самодельный скрипт комментариев который работает через ajax, реализовал в двух версиях, но не знаю какой использовать, различие между ними вот в чём:
1) после добавления комментария в базу получаем его, генерируем на сервере что-то типа этого <div class="comment"><?=$comment->comment_text?></div>, и на стороне клиента выполняем comments.innerHTML = data; где data ответ сервера

2) тут уже кодируем данные в json, и у клиента парсим его, создаём див, задаём необходимые классы, атрибуты и т п, и вставляем

насчёт скорости мне кажется первый быстрее, но это только мне так кажется, не тестировал, но меня больше волнует память, который из них требует больше памяти? возможна ли утечка? заранее спасибо
Ответить с цитированием
  #2 (permalink)  
Старый 06.05.2015, 12:05
Профессор
Отправить личное сообщение для krasovsky Посмотреть профиль Найти все сообщения от krasovsky
 
Регистрация: 21.12.2012
Сообщений: 869

Ясное дело,json. Сейчас может быть это и не понятно в твоем проекте который использует небольшое кол-во пользователей, но генерация html на сервере = трата ресурсов. Такие вещи давно пора перекладывать на клиент.

Кроме того длинна одного такого несчастного коммента в данном случае не намного больше строки json, а что если генерировать целую страницу? Тогда сразу видна разница между 100500 строк html и 10-20 строк тех же данных в json, и скорости ее загрузки.

Последний раз редактировалось krasovsky, 06.05.2015 в 12:08.
Ответить с цитированием
  #3 (permalink)  
Старый 06.05.2015, 12:08
Профессор
Отправить личное сообщение для Tecvid Посмотреть профиль Найти все сообщения от Tecvid
 
Регистрация: 13.12.2013
Сообщений: 175

понятно, спасибо большое)
Ответить с цитированием
  #4 (permalink)  
Старый 06.05.2015, 12:41
Профессор
Отправить личное сообщение для Tecvid Посмотреть профиль Найти все сообщения от Tecvid
 
Регистрация: 13.12.2013
Сообщений: 175

а вот насчёт непосредственно js, может ли в таком случае многократный appendChild привести к утечке? или сборщик сам позаботится? так как насколько я знаю выставленный элемент остаётся в памяти пока не будет удалён через removeChild, или я где-то что-то пропустил
Ответить с цитированием
  #5 (permalink)  
Старый 06.05.2015, 21:44
Аватар для Safort
Профессор
Отправить личное сообщение для Safort Посмотреть профиль Найти все сообщения от Safort
 
Регистрация: 23.12.2013
Сообщений: 1,856

Tecvid,
не нужно никаких многократных appendChild'ов, от этого только тормозов больше. Просто все комменты в одну переменную конкатинируй и только в конце делай один единственный appendChild или innerHTML (тебе что удобнее).
Ответить с цитированием
  #6 (permalink)  
Старый 07.05.2015, 09:33
Профессор
Отправить личное сообщение для krasovsky Посмотреть профиль Найти все сообщения от krasovsky
 
Регистрация: 21.12.2012
Сообщений: 869

Сообщение от Tecvid
а вот насчёт непосредственно js, может ли в таком случае многократный appendChild привести к утечке?
Я б тебе посоветовал воспользоваться js-шаблонизаторов, их дофига и больше на любой вкус и цвет. Код как правило вылизан и побрит, и самому ничего делать не надо. Только воткнуть результат в нужное место.

И опять же все зависит от нагружености проекта - в небольших можно спокойно генерить хтмл на серваке шириной с простыню, и нет никакого смысла подключать js-шаблонизаторы ради полстрочки json'а.
Ответить с цитированием
  #7 (permalink)  
Старый 07.05.2015, 12:25
Профессор
Отправить личное сообщение для Tecvid Посмотреть профиль Найти все сообщения от Tecvid
 
Регистрация: 13.12.2013
Сообщений: 175

Safort,
так же не получается, не все комментарии одновременно идут, ваш вариант можно использовать для пред комментов, когла сразу загружаются несколько комментариев, но всё равно спасибо

krasovsky,
загляну иншааллах, спасибо за совет)
Ответить с цитированием
  #8 (permalink)  
Старый 14.05.2015, 04:45
Профессор
Отправить личное сообщение для kostyanet Посмотреть профиль Найти все сообщения от kostyanet
 
Регистрация: 23.10.2010
Сообщений: 2,718

На фоне подъема компилятора, компилирования и выполнения рендер не такой страшный. Зато дебилизм js это притча во языцах блеа...

Одного только сцука null который выводится текстом "null" достаточно чтоб предать анафеме рендер на клиенте.

А потом еще начинаются извороты типа shadow dom ибо никаких еб-стартов там нет.
Ответить с цитированием
  #9 (permalink)  
Старый 14.05.2015, 05:07
Профессор
Отправить личное сообщение для kostyanet Посмотреть профиль Найти все сообщения от kostyanet
 
Регистрация: 23.10.2010
Сообщений: 2,718

А, про жисон, а вы комбинируйте. Пихайте хтмл в жисон и одновременно всякие полезные опции типа куда вставить, что еще поменять и все такое. Я так и делаю.

Есть даже такое место

for(var att in data)
  el[att]=data[att];


Прикольно?

На самом деле обозначенный выбор не вопрос технологий, а скорее заточек. Как кошатники и собачники есть клиентщики и серверщики. У каждого своя заточенная казенная часть, только и всего. Мне в 100500 раз проще выдать всю тряхомудию с сервера, потому что для клиента вообще нет никаких лайб и фрейворка, а для сервера - есть. Ну вот, а кого наоборот - то наоборот.

Последний раз редактировалось kostyanet, 14.05.2015 в 05:12.
Ответить с цитированием
  #10 (permalink)  
Старый 14.05.2015, 05:16
Профессор
Отправить личное сообщение для kostyanet Посмотреть профиль Найти все сообщения от kostyanet
 
Регистрация: 23.10.2010
Сообщений: 2,718

Сообщение от krasovsky
в небольших можно спокойно генерить хтмл на серваке шириной с простыню
Не пугайте народ этими серверами. Чтобы выдать 1 в жисоне, надо поднять всю ту же самую хренату на сервере начиная с апача, хтбабсцессов, точки входа, интерпретатора-компилятора пхп, запуск, инклюды, поток, запросы к бд, запросы к бд... То есть в обороте скажем мегов 100, а выдается единичка. И думаете если выдать килобайт в обороте будет в 1000 раз больше?

Тот факт что не нужно сайт пересобирать, даже из кешей - это уже большая экономия в аяксе. Остальное - по вкусу.

Последний раз редактировалось kostyanet, 14.05.2015 в 05:18.
Ответить с цитированием
Ответ


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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Плагин для Chrome. Анти - мат. Проблема с обновлением. Pacman Javascript под браузер 3 31.05.2013 21:40
Плагин для Chrome. Анти - мат. Проблема с обновлением. timedo Общие вопросы Javascript 1 30.05.2013 12:28
убрать прокрутку с элемента Vampir3 Общие вопросы Javascript 1 06.02.2013 17:20
Горизонтальная прокрутка контента! andys Элементы интерфейса 5 26.06.2011 23:06
скролл для длинного текста не появляется... dschmitz (X)HTML/CSS 6 27.11.2010 02:34