|
|
|
Передача фрагментов HTML на страницу с помощью php, smart, json и ajax
|
|||
|---|---|---|---|
|
#18+
Передача фрагментов HTML на страницу с помощью php, smart, json и ajax Подскажите плс… Задача такая: есть форма, под ней комменты, которые с этой формы и вводятся. Есть сервер php+smarty. Хочу попробовать сделать асинхронное обновление комментов. По какому-либо событию, я делаю через аякс запрос к серверу и получаю комменты в виде html. Ловлю это на клиенте и вставляю на страницу готовый хтмл. Передачу хочу сделать через json, т.е. на сервере это json_encode, на стороне клиента JSON.parse. Это нормальный вариант, или он не верный? Я не считаю, что это окончательное решение, но пока мне бы хотелось это сделать именно так. Т.е. больше, я это сделал, это работает без особых проблем, и всё бы ничего, но искал подтверждения своих действий в инете, и не нашёл никаких современных подтверждений, что так делают, соответственно и подумалось, может быть я не прав и это не верное решение? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2014, 02:59 |
|
||
|
Передача фрагментов HTML на страницу с помощью php, smart, json и ajax
|
|||
|---|---|---|---|
|
#18+
Подкупает, что смарти формирует готовый хтмл на основе готовой используемой формы. В результате код получается очень простым и главное, что не надо ничего практически менять, что на текущем этапе мне важно. Но при этом появляется динамическое обновление страницы. Но вот подёргался, и ничего не нашёл. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2014, 03:03 |
|
||
|
Передача фрагментов HTML на страницу с помощью php, smart, json и ajax
|
|||
|---|---|---|---|
|
#18+
artushПо какому-либо событию, я делаю через аякс запрос к серверу и получаю комменты в виде html. Ловлю это на клиенте и вставляю на страницу готовый хтмл. Передачу хочу сделать через json, т.е. на сервере это json_encode, на стороне клиента JSON.parse.Я не понял, в наличии имеется вставка html, а переделать нужно в json? Если что, html и json это перпендикулярные форматы, и передавать html, утрамбованный в json, который потом нужно снова развернуть в html, это не то что плохая практика, а просто глупость. artushТ.е. больше, я это сделалУже боюсь представить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2014, 03:12 |
|
||
|
Передача фрагментов HTML на страницу с помощью php, smart, json и ajax
|
|||
|---|---|---|---|
|
#18+
Antonariy сделал, в смысле попробовал, это работает. да, имеется html кусок, который я хочу вставлять в div на странице. почему json, помимо самого html кода идёт ещё ряд данных, json мне удобен тем, что я передаю с сервера массив и получаю массив. в одном поле сам html код, в других служебные поля. а что значит перпендикулярные форматы? json это формат хранения данных, хтмл отображения. если передавать не упакованных хтмл, то придётся ещё обрабатывать полученные данные, выделять оттуда нужные поля. при запаковке размер несколько увеличивается, но на сервере стоит сжатие, так что это в конечном счёте на трафик не влияет. с точки зрения "что было" "что будет", сейчас чтобы обновить страницу, нужно перегрузить её всю, а будет перегрузка только полученных комментариев. т.е. в этом смысле тоже трафик не увеличится. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2014, 03:24 |
|
||
|
Передача фрагментов HTML на страницу с помощью php, smart, json и ajax
|
|||
|---|---|---|---|
|
#18+
проехали, количество слов на количестве смысла не отразилось. чтобы сказать, как конкретно сделать лучше, нужно знать, как конкретно сделано сейчас. то есть код. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2014, 03:55 |
|
||
|
Передача фрагментов HTML на страницу с помощью php, smart, json и ajax
|
|||
|---|---|---|---|
|
#18+
artushпри запаковке размер несколько увеличивается, но на сервере стоит сжатие, так что это в конечном счёте на трафик не влияет.Зато влияет на загрузку как серверного процессора, так и клиентского. Другими словами, получился ничем не обоснованный тормоз. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2014, 07:01 |
|
||
|
Передача фрагментов HTML на страницу с помощью php, smart, json и ajax
|
|||
|---|---|---|---|
|
#18+
Antonariy, код... тут всё просто. на сервере Код: php 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. на клиенте что-то типа Код: javascript 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. Кроме этих двух переменных (html и is_new_comments) передаётс ещё ряд переменных, которые также удобно передавать в массиве. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2014, 12:36 |
|
||
|
Передача фрагментов HTML на страницу с помощью php, smart, json и ajax
|
|||
|---|---|---|---|
|
#18+
vkle Зато влияет на загрузку как серверного процессора, так и клиентского. Другими словами, получился ничем не обоснованный тормоз. да, я понимаю. но прикинул: преобразование строки в json и обратно не затратная операция, интерпретаторы используют встроенную бинарную функцию, по сути кодировка это замена переносов строк и табуляций на \t и \n и экранирование других спец символов, раскодировка обратная операция. на странице 10 комментов, макс размер коммента 1 кб, пусть html разметка 10%, получается предельно 11 кб. Т.е. эта нагрузка не большая. Это по поводу нагрузки. А вот допустим, если не json, как лучше передать данные клиенту? Или передача готового html настолько порочна, что даже обсуждать не следует? Если передавать только данные, а на клиенте вставлять их в шаблоны, это по нагрузке будет превышать декодировку json очень значительно. И на данный момент мне удобней сделать как я описал. Т.е. есть какие-либо НО в моём подходе, кроме повышенной нагрузки на запаковку и распаковку? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2014, 12:47 |
|
||
|
Передача фрагментов HTML на страницу с помощью php, smart, json и ajax
|
|||
|---|---|---|---|
|
#18+
artushКроме этих двух переменных (html и is_new_comments) передаётс ещё ряд переменных, которые также удобно передавать в массиве.Не фонтан, но для простого проекта пойдет. artushИли передача готового html настолько порочна, что даже обсуждать не следует?Абсолютно не порочна, что передавать зависит от архитектуры. Тем более, что ты и так передаешь html, хоть он и закодирован в json. Смысл противостояния html/json в том, чтобы не передавать html вообще, а только какие-то значения, на основании которых скриптом строится html. Например, в одностраничном личном кабинете при загрузке форм я отдаю их в виде html, а при сохранении форм отправляю и возвращаю json. Просто мне набросать форму в html и подставить на сервере значения проще, чем городить скрипты на клиенте. На клиенте получается просто как пареная репа: Меню с формами: Код: html 1. 2. 3. 4. 5. 6. Загрузка форм: Код: javascript 1. 2. 3. 4. 5. 6. 7. 8. Сохранение форм: Код: javascript 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. Содержимое функций типа Organization.CabSaveInfo.run я вручную не пишу, оно генерируется заранее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2014, 15:01 |
|
||
|
Передача фрагментов HTML на страницу с помощью php, smart, json и ajax
|
|||
|---|---|---|---|
|
#18+
зачем делать стоко лишних преобразований?есть сформированный кусак html кода - передал его клиенту на клиенте простыми командами jquery вставил в нужное место. http://jquery.page2page.ru/index.php5/Добавление_содержимого_в_конец_элементов Т.е. больше, я это сделал, это работает без особых проблем, и всё бы ничего, но искал подтверждения своих действий в инете, и не нашёл никаких современных подтверждений, что так делают, соответственно и подумалось, может быть я не прав и это не верное решение? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2014, 16:32 |
|
||
|
Передача фрагментов HTML на страницу с помощью php, smart, json и ajax
|
|||
|---|---|---|---|
|
#18+
зачем делать стоко лишних преобразований?есть сформированный кусак html кода - передал его клиенту на клиенте простыми командами jquery вставил в нужное место. http://jquery.page2page.ru/index.php5/Добавление_содержимого_в_конец_элементов авторТ.е. больше, я это сделал, это работает без особых проблем, и всё бы ничего, но искал подтверждения своих действий в инете, и не нашёл никаких современных подтверждений, что так делают, соответственно и подумалось, может быть я не прав и это не верное решение? ну если ты искал в инете то счас уже не ajax для этих целей используют, а websocket. и всё ннамного проще становится. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2014, 16:34 |
|
||
|
Передача фрагментов HTML на страницу с помощью php, smart, json и ajax
|
|||
|---|---|---|---|
|
#18+
Antonariy, спасибо за подробный ответ! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.12.2014, 01:23 |
|
||
|
Передача фрагментов HTML на страницу с помощью php, smart, json и ajax
|
|||
|---|---|---|---|
|
#18+
вадя, ну ээээ) скорее всего так и есть. у меня ситуация немного нестандартная. с веб программированием столкнулся пару месяцев назад, и пока просто осваиваюсь потихоньку, поэтому хочу просто с джаваскриптом в чистом виде разобраться. сейчас занят совсем другим, реструктуризацией бд на сервере, до остального руки доходят походу изучения js, отсюда и задача возникла, изменить всё с минимальными затратами и полным пониманием процесса. спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.12.2014, 01:27 |
|
||
|
|

start [/forum/topic.php?fid=22&fpage=84&tid=1446468]: |
0ms |
get settings: |
7ms |
get forum list: |
19ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
48ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
59ms |
get tp. blocked users: |
1ms |
| others: | 216ms |
| total: | 367ms |

| 0 / 0 |
