|
|
|
Еще вопрос про AJAX
|
|||
|---|---|---|---|
|
#18+
Дня доброго други! Здравы будете! Вот прочитал я немного про технологию AJAX. Cуть конечно понял. Вот определение (взято с http://dklab.ru/lib/JsHttpRequest/): "AJAX-библиотека JsHttpRequest позволяет, например, делать подзапросы к веб-серверу без перезагрузки страницы. Вы можете запросить данные с сервера и незамедлительно отобразить их в каком-нибудь блоке на странице." "...Каждая веб-страница с AJAX состоит из двух частей: frontend и backend. В frontend вы делаете запросы к веб-страницам, а в backend вы отвечаете на эти запросы. ...Frontend всегда выполняется в браузере. Backend всегда выполняется на сервере." То есть все необходимые запросы к БД, какой-то функционал, выполняются на сервере - я правильно понял? У меня возник такой вопрос: Какой вообще тут есть выигрыш в производительности? К примеру, если на сервере формируется запрос, который выводит сотни значений из какой-либо базы данных, да у клиента канал связи не 100 Мбит/сек, а какие-нибудь 50 Кбайт/сек. Получается, что пока он ждет результат, он может попить чайку, покурить? Так уж все это происходит "незамедлительно"? Заранее благодарен! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.06.2007, 08:22:38 |
|
||
|
Еще вопрос про AJAX
|
|||
|---|---|---|---|
|
#18+
Вам не надо рефрешить страницу для того чтобы обновить определённый блок данных на странице. Вот и весь плюс. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.06.2007, 09:18:36 |
|
||
|
Еще вопрос про AJAX
|
|||
|---|---|---|---|
|
#18+
Как Вы правильно поняли, Ajax заключается в том, чтобы менять содержимое страницы в браузере динамически, по нужным частям, в ответ на запросы пользователя. Но производительность обычно немножко страдает. Во-первых, за счет того, что страница, "озвученная" Ajax, тащит с собой солидный объем JavaScript кода. Во-вторых, за счет того, что динамичское заполнение страницы через DOM тоже требует времени. Однако это обычно не критично. Не разы, а проценты. Вашему клиенту не будет большой разницы, загрузится какая-нибудь таблица из БД в браузер "чистым" HTML или сначала загрузится страница-контейнер, а потом она запросит данные с сервера и заполнит сама себя. Чтбы клиент не беспокоился, используйте асинхронные HttpRequest и вешайте окошко с прогрессом, пока запрос выполняется и обрабатыватся. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.06.2007, 09:27:53 |
|
||
|
Еще вопрос про AJAX
|
|||
|---|---|---|---|
|
#18+
jusioВам не надо рефрешить страницу для того чтобы обновить определённый блок данных на странице. Вот и весь плюс. А этого мало? Если для рефреша страницы нужно поднять тяжелый sql, выигрыш может быть весьма неплохой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.06.2007, 10:20:36 |
|
||
|
Еще вопрос про AJAX
|
|||
|---|---|---|---|
|
#18+
Ну какая разница, рефрешится вся страница или только часть (в которой выпадающий список). Все же я имею ввиду сервер. Если там какой-то сложный запрос с огромным количеством данных. Чтобы его обработать нужно время+ скорость доставки данных клиенту. Все-таки мы имеем дело с распределенными веб-приложениями, а ни с локальной консольной программой (где даные могут загружаться в ОЗУ компа прямо с винта). Хотя может быть я не прав... Еще други, хотел спросить по конкретному вопросу. У меня стоит Documentum Content Server. Соответственно под него установлено веб-приложение (для пользователей) -Webtop. Мне необходимо создать компонент. Компонент имеет следующее: пользователь вводит в текстовое поле (если точнее, то это поле представляет собой т.н.з. контрол) какое-либо слово, и ему тут же появляется выпадающий список со всеми словами, в коих слово, введенное пользователем, входит. Есть два варианта решения задачи. Первый вариант: При вводе слова в текстовое поле генерится событие, которое делает запрос к Documentum Content Server и результат запроса вставляется в выпадающий список. Но есть свои "но". Выполнение запроса может занять продолжительное время (нужно перебрать около 1000 значений). Плюс низкая пропускная способность канала связи. Второй вариант: При инициализации компонента загрузить в броузер клиента все (!) данные, а перебор с выпадающим списком делать на клиенте (Java Script). Еще отмечу: пишу на Java. Веб-приложение - Tomkat 5.0 У кого какие мнения? Заранее благодарен ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.06.2007, 12:04:51 |
|
||
|
Еще вопрос про AJAX
|
|||
|---|---|---|---|
|
#18+
Ну какая разница, рефрешится вся страница или только часть (в которой выпадающий список). Все же я имею ввиду сервер. Если там какой-то сложный запрос с огромным количеством данных. Чтобы его обработать нужно время+ скорость доставки данных клиенту. Все-таки мы имеем дело с распределенными веб-приложениями, а ни с локальной консольной программой (где даные могут загружаться в ОЗУ компа прямо с винта). Хотя может быть я не прав... Не прав. Простейший пример - нужно показать пользователю огромный список. Он спокойненько строится на сервере и кладется в кэш, пользователю отдается первая и вторая (например) страница. Код на клиенте всегда, когда пользователь смотрит страницу n, запрашивает с сервера страницы n и n+1 - в асинхронном режиме. Выигрыш: на трафике (обычно все просматривать не надо, можно еще и навигацию приделать, да и список значений компактнее их же в HTML), скорости отклика у клиента (это, кстати, основной реальный параметр). Вообще, по опыту, хорошо написанное AJAX приложение в сумме потребляет существенно меньше трафика (правда, для этого нужно писать его самому, а не использовать тяжелые существующие framework'и), дает очень сильный выигрыш в скорости отклика, позволяет писать гораздо более простой код на стороне сервера (вся логика отображения убрана на клиент). Минусы: нужно уметь делать все вышеперечисленное - на это способна меньшая часть хороших JS-программистов, проблемы с реализацией back/forward под IE (опять таки, нужно делать самому, стандартные framwork'и делают это не очень корректно) Да, AJAX с XML лучше не использовать, JSON с идеологией AJAX гораздо лучше сочетается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.06.2007, 13:44:09 |
|
||
|
Еще вопрос про AJAX
|
|||
|---|---|---|---|
|
#18+
DPH Не прав. Простейший пример - нужно показать пользователю огромный список. Он спокойненько строится на сервере и кладется в кэш, пользователю отдается первая и вторая (например) страница. Код на клиенте всегда, когда пользователь смотрит страницу n, запрашивает с сервера страницы n и n+1 - в асинхронном режиме. Выигрыш: на трафике (обычно все просматривать не надо, можно еще и навигацию приделать, да и список значений компактнее их же в HTML), скорости отклика у клиента (это, кстати, основной реальный параметр). Неудачный пример. Вот смотрю я например страницу 1, 2-я уже загружена, затем сразу перехожу на страницу 4, в это время уже грузится 5-я. И чего? И где тут выйгрыш во времени отклика. А где меньшее потребление трафика? В данном примере, она даже в 2-а раза больше, чем без AJAX бы было. И вообще, если не использовать AJAX, то почему обязательно все тянуть на коиента??? Разбиваем на страницы и делаем панельку с навигацией и делов то. DPH Вообще, по опыту, хорошо написанное AJAX приложение в сумме потребляет существенно меньше трафика не встречал я пока таких, все они жутко тормозные и глючные. DPH (правда, для этого нужно писать его самому, читал в форумах посты людей, пытающихся это сделать, задача это очень сложная, если это кому-то и удалось сделать, то не завидую тем, кто потом в этом чуде будет разбираться и поддерживать. DPH а не использовать тяжелые существующие framework'и), другого выхода в 99% случаев нет. Это конечно если здраво мыслить :) DPH дает очень сильный выигрыш в скорости отклика, ИМХО, AJAX нужен лишь для того, чтобы web приложения смогли хоть как-то приблизиться по Usability к старым, добрым клиентам на SWING/SWT/MFC/Delphi и т.д. На данный момент, AJAX приложения убоги, тормозны и глючны. DPH позволяет писать гораздо более простой код на стороне сервера (вся логика отображения убрана на клиент). Думаю, что AJAX тут не причем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.06.2007, 14:27:53 |
|
||
|
Еще вопрос про AJAX
|
|||
|---|---|---|---|
|
#18+
согласен с DPH и не согласен с wessen, но ссылку дать не могу, делали корпоративную систему типа автор(правда, для этого нужно писать его самому, а не использовать тяжелые существующие framework'и) все летает и никаких глюков, или их еще не нашли))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.06.2007, 14:52:06 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=34566569&tid=2145236]: |
0ms |
get settings: |
15ms |
get forum list: |
18ms |
check forum access: |
5ms |
check topic access: |
5ms |
track hit: |
36ms |
get topic data: |
16ms |
get forum data: |
4ms |
get page messages: |
70ms |
get tp. blocked users: |
2ms |
| others: | 312ms |
| total: | 483ms |

| 0 / 0 |
