Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: html vs json

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
melomaniac
Отправлено: 05 Марта, 2015 - 09:19:14
Post Id



Новичок


Покинул форум
Сообщений всего: 61
Дата рег-ции: Февр. 2014  


Помог: 0 раз(а)




Всем привет. Не дает покоя следующий вопрос. К примеру отправили мы ajax запрос, а вот в каком виде лучше присылать ответ - html или json ? Html проще, пришел готовый кусок кода, воткнули на страницу, готово. С json сложнее, нужно на клиенте разбирать чего и куда. Смущает одна вещь, html к примеру отдает результат весом 2.1kb, json тот же кусок 365b, разумеется только данные из БД без html. Собственно вопрос, что будет быстрее отдать готовый html или же json c разбором на клиенте, т.е. примерно так:

CODE (javascript):
скопировать код в буфер обмена
  1.  
  2. for(var i = 0; i < result.length; i++) {
  3.     jQuery(response_container).append('<div class="maxchildren">MAXCHILDREN: ' + result[i].MAXCHILDREN+ '</div>');  
  4.     jQuery(response_container).append('<div class="pic">PICTURE: ' + result[i].PICTURE+ '</div>');
  5. ...
  6. }
  7.  


P.S: пример с просторов тырнета, только для понимания о чем речь Улыбка
 
 Top
RickMan
Отправлено: 05 Марта, 2015 - 09:21:21
Post Id


Участник


Покинул форум
Сообщений всего: 1033
Дата рег-ции: Май 2012  


Помог: 30 раз(а)




Все зависит от того, какая у вас структура проекта, но в идеале, в бэкенде php должен отвечать только за обработку данных, и никак не за рендеринг, поэтому лучше чтобы от сервера приезжал json (у него и вес меньше), а уже во фронтенде рендером заниматься должен какой-то frontend framework...
 
 Top
melomaniac
Отправлено: 05 Марта, 2015 - 09:31:33
Post Id



Новичок


Покинул форум
Сообщений всего: 61
Дата рег-ции: Февр. 2014  


Помог: 0 раз(а)




RickMan пишет:
Все зависит от того, какая у вас структура проекта, но в идеале, в бэкенде php должен отвечать только за обработку данных, и никак не за рендеринг, поэтому лучше чтобы от сервера приезжал json (у него и вес меньше), а уже во фронтенде рендером заниматься должен какой-то frontend framework...


Ок, спасибо. Посмотрел по времени разницы нет особой, может из-за того что мало данных и разницы поэтому не заметно. Хотя я думал должен json быстрее отдавать, данных ведь меньше намного Растерялся
 
 Top
RickMan
Отправлено: 05 Марта, 2015 - 09:51:40
Post Id


Участник


Покинул форум
Сообщений всего: 1033
Дата рег-ции: Май 2012  


Помог: 30 раз(а)




Подумайте, что будет, когда одновременно к серверу обратятся 1000 человек. В случае если серверу надо отдать html, то ему для 1000 людей надо его подготовить, а это время, а с в случае если нужно отдать json? Времени явно уйдет меньше, и трафика меньше... Ведь лучше часть нагрузки всеже переложить на клиента, тем более frontend по все показателям лучше обрабатывать у клиента. Я не вижу толком плюсов, в отдаче html через ajax.
 
 Top
melomaniac
Отправлено: 05 Марта, 2015 - 11:04:59
Post Id



Новичок


Покинул форум
Сообщений всего: 61
Дата рег-ции: Февр. 2014  


Помог: 0 раз(а)




RickMan пишет:
Подумайте, что будет, когда одновременно к серверу обратятся 1000 человек. В случае если серверу надо отдать html, то ему для 1000 людей надо его подготовить, а это время, а с в случае если нужно отдать json? Времени явно уйдет меньше, и трафика меньше... Ведь лучше часть нагрузки всеже переложить на клиента, тем более frontend по все показателям лучше обрабатывать у клиента. Я не вижу толком плюсов, в отдаче html через ajax.


Ну на мой взгляд плюс один - скорость разработки Радость Т.е. вариант по типу:
CODE (javascript):
скопировать код в буфер обмена
  1.  
  2. for(var i = 0; i < result.length; i++) {
  3.     jQuery(response_container).append('<div class="maxchildren">MAXCHILDREN: ' + result[i].MAXCHILDREN+ '</div>');  
  4.     jQuery(response_container).append('<div class="pic">PICTURE: ' + result[i].PICTURE+ '</div>');
  5. ...
  6. }
  7.  


вполне приемлем. Или нет ?
 
 Top
RickMan
Отправлено: 05 Марта, 2015 - 11:37:20
Post Id


Участник


Покинул форум
Сообщений всего: 1033
Дата рег-ции: Май 2012  


Помог: 30 раз(а)




Скорость разработки? Вы думаете на php сформировать страницу получится быстрее чем это написать на js фреймворке? Мало верится... Просто надо учиться, и поймете, что это далеко не самый лучший вариант. Ну а если говорить о приемлимости, то "работает? ну и отлично"...
 
 Top
melomaniac
Отправлено: 05 Марта, 2015 - 12:04:31
Post Id



Новичок


Покинул форум
Сообщений всего: 61
Дата рег-ции: Февр. 2014  


Помог: 0 раз(а)




RickMan пишет:
Скорость разработки? Вы думаете на php сформировать страницу получится быстрее чем это написать на js фреймворке?


Я в коде ничего не формирую, я отдаю по сути тоже представление. только обновленное. MVC в смысле использую. Просто отдаю view нужный и все. Т.е. так примерно:
PHP:
скопировать код в буфер обмена
  1.  
  2. return $this->view('/views/edit', $item);
  3.  


Больше ничего, потом на клиенте
CODE (javascript):
скопировать код в буфер обмена
  1.  
  2. $('#content').html(data);
  3.  


Цитата:
Мало верится... Просто надо учиться, и поймете, что это далеко не самый лучший вариант. Ну а если говорить о приемлимости, то "работает? ну и отлично"...


Дык посоветуйте вариант получше пожалуйста Улыбка
 
 Top
RickMan
Отправлено: 05 Марта, 2015 - 13:06:37
Post Id


Участник


Покинул форум
Сообщений всего: 1033
Дата рег-ции: Май 2012  


Помог: 30 раз(а)




Я же не знаю структуры вашего проекта, поэтому и посоветовать точного решения не могу. Посмотрите в целом на angular, backbone, emberJS... там вы не увидите "Делайте все в php, нам давайте готорвый html и все..."
 
 Top
melomaniac
Отправлено: 05 Марта, 2015 - 13:25:37
Post Id



Новичок


Покинул форум
Сообщений всего: 61
Дата рег-ции: Февр. 2014  


Помог: 0 раз(а)




RickMan пишет:
Я же не знаю структуры вашего проекта, поэтому и посоветовать точного решения не могу. Посмотрите в целом на angular, backbone, emberJS... там вы не увидите "Делайте все в php, нам давайте готорвый html и все..."


Мне просто интересно, если смысл в js шаблонизаторах(не знаю правильно ли их так называть), по скорости они шустрее скажем чем twig тот же ?
 
 Top
RickMan
Отправлено: 05 Марта, 2015 - 13:53:36
Post Id


Участник


Покинул форум
Сообщений всего: 1033
Дата рег-ции: Май 2012  


Помог: 30 раз(а)




Я выше объяснил вам смысл какой. Да и тенденция щас такая, и не зря.

P.S. Еще раз обьясню: если 1000 человек обратится к серверу, и сервер будет заиматься шаблонизированием, то 1000-ому человеку надо будет ждать пока для 999 человек подготовятся данные и закинутся в шаблон. Если же шаблонами будет заниматься js, то 1000-ому надо будет подождать пока для 999 людей просто данные подготовятся. Понимаете что 2 действия по времени ну никак не равно одному.
 
 Top
melomaniac
Отправлено: 05 Марта, 2015 - 15:52:14
Post Id



Новичок


Покинул форум
Сообщений всего: 61
Дата рег-ции: Февр. 2014  


Помог: 0 раз(а)




RickMan пишет:
Я выше объяснил вам смысл какой. Да и тенденция щас такая, и не зря.

P.S. Еще раз обьясню: если 1000 человек обратится к серверу, и сервер будет заиматься шаблонизированием, то 1000-ому человеку надо будет ждать пока для 999 человек подготовятся данные и закинутся в шаблон. Если же шаблонами будет заниматься js, то 1000-ому надо будет подождать пока для 999 людей просто данные подготовятся. Понимаете что 2 действия по времени ну никак не равно одному.


Понял, спасибо. Значит буду копать в сторону js Улыбка
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« JavaScript & VBScript »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB