Поиск:

Ответ в темуСоздание новой темы Создание опроса
> AJAX - технология, которая должна перевернуть веб, но вот как ее грамотно использовать? 
:(
    Опции темы
Irokez
Дата 16.7.2005, 18:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


индеец
***


Профиль
Группа: Участник Клуба
Сообщений: 1180
Регистрация: 20.10.2004

Репутация: нет
Всего: 53



Буду благодарен за любые материалы по этой технологии, а также за ответы на следующие вопросы:
1) Как грамотно спроектировать веб-интерфейс, который будет работать на технологии AJAX, а именно какие части интерфейса (и в каких случаях) должны быть обновляемы черех AJAX, а какие обновлением страницы, или переходом на новую?
2) Что должен возвращать сервер: готовый HTML код, который вставляем вместо старого или данные в виде XML используя которые с помощью JavaScript обновляем страницу?

Возьмем к примеру интерфейс управления баллами студентов по предметам, пусть данная система состоит из таблицы, где для каждой фамилии будет идти ряд баллов по каждому предмету, преподаватель может редактировать баллы любого предмета нажатием кнопки "редактировать" - в этом случае вместо таблицы откроется форма, где можно будет редактировать любой балл студента, после нажатия "сохранить" данные будут сохранены и снова появится таблица баллов всех студентов.

Мои вопросы по примеру:
1) Как стоит осуществлять переход от таблицы к форме и обратно? Должен ли сервер возвращать сначала HMTL код формы, а после сохранения - таблицы, или только данные, по которым у клиента будет строиться форма и таблица?
2) Допустим будет еще один модуль - управление преподавателями и ссылка на него. Стоит ли делать переход на данный модуль как на другую страницу, т.е. просто ссылкой или также через AJAX?

Прошу простить если вопросы поставил некорректно, с технологией знаком поверхностно, но очень хочу применить ее грамотно на практике.
PM   Вверх
Black
Дата 16.7.2005, 19:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Web-Development
**


Профиль
Группа: Участник
Сообщений: 980
Регистрация: 15.8.2004

Репутация: 2
Всего: 45



Irokez
нет, все гораздо проще.
ты с помощью AJAX передаешь на сервер например такие данные:

student.php?newball=5&id=45

Скрипт получает данные, записывает в базы и т.д.
Затем возвращает такой код:

Код

document.getElementById(45).innerHTML = 5;


Вот и все. В таблице будет изменена цифирка у студента, которому ее поменяли.
Чтобы АЯКС исполнил строку которую вернул PHP-скрипт пишем:

Код

eval (Req.responseText);


Скрипт PHP должен еще заголовок такой отдавать:

Код

header ("content-type: text/plain");


Т.е. типа мы текст возвращаем, а не HTML-код.

А таблицу формировать следующим образом:


Код

<tr>
  <td id='id из базы'>здесь указан балл</td>
  <td><button onclick='izmenit(id из базы)'>Изменить балл</button></td>
</tr>



Цитата
AJAX - технология, которая должна перевернуть веб

согласен. Я уже ее юзаю во всю smile


--------------------
Могу все, но ничего не умею :-)
PM WWW   Вверх
Mal Hack
Дата 16.7.2005, 19:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 1
Всего: 261



А можно для нуба дать линк на то, что из себя этот AJAX представлеят?
Жлательно спецификация или архитектура.
PM ICQ   Вверх
Irokez
Дата 16.7.2005, 19:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


индеец
***


Профиль
Группа: Участник Клуба
Сообщений: 1180
Регистрация: 20.10.2004

Репутация: нет
Всего: 53



Цитата(PHP @ 16.7.2005, 19:11)
Irokez
нет, все гораздо проще.

я так не думаю smile
Цитата(PHP @ 16.7.2005, 19:11)
document.getElementById(45).innerHTML = 5;

не думаю, что это хорошее решение, лучше уж передать только 5, а клиент сам выполнит остальное
Цитата(PHP @ 16.7.2005, 19:11)
eval (Req.responseText);

страшно как-то.. а вдруг XSS?

Добавлено @ 19:20
Цитата(Mal @ 16.7.2005, 19:17)
А можно для нуба дать линк на то, что из себя этот AJAX представлеят?

неплохая ознакомительная статья http://www.computerra.ru/hitech/39239/
больше ничего путного не нашел, поэтому прошу помощи на форуме smile
PM   Вверх
Black
Дата 16.7.2005, 19:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Web-Development
**


Профиль
Группа: Участник
Сообщений: 980
Регистрация: 15.8.2004

Репутация: 2
Всего: 45



Irokez

Цитата
я так не думаю

а я думаю :-)

Цитата
не думаю, что это хорошее решение, лучше уж передать только 5, а клиент сам выполнит остальное


просто пять??? ну ладно тогда возвращай пять и делай так:

Код

function zamena (Req.responseText);


Где замена будет менять то что надо на переданный ей текст.

Цитата
страшно как-то.. а вдруг XSS?

какой XSS??? твой же скрипт возвращает текст.




--------------------
Могу все, но ничего не умею :-)
PM WWW   Вверх
Mal Hack
Дата 16.7.2005, 19:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 1
Всего: 261



Ну все ясно..
В принципе замена несовершенному во многом javaScript, которая соединена с XML, это хорошо.
В принципе тут уже этот подход один товарищ продвигал:
http://forum.vingrad.ru/index.php?showtopi...77&unread=1&hl=
http://forum.vingrad.ru/index.php?showtopic=54426&hl=
PM ICQ   Вверх
Irokez
Дата 16.7.2005, 19:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


индеец
***


Профиль
Группа: Участник Клуба
Сообщений: 1180
Регистрация: 20.10.2004

Репутация: нет
Всего: 53



Цитата(PHP @ 16.7.2005, 19:26)
function zamena (Req.responseText);

спасибо, я знаю как осуществить обновление страницы и знаю как работает XMLHttpRequest smile
я не знаю как грамотно спроектировать интерфейс и прошу ответов на поставленные вопросы.
Добавлено @ 19:34
Цитата(Mal @ 16.7.2005, 19:29)
В принципе тут уже этот подход один товарищ продвигал:
http://forum.vingrad.ru/index.php?showtopi...77&unread=1&hl=
http://forum.vingrad.ru/index.php?showtopic=54426&hl=

сорри, но это совсем не то
PM   Вверх
Mal Hack
Дата 16.7.2005, 19:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 1
Всего: 261



Цитата(Irokez @ 16.7.2005, 20:32)
сорри, но это совсем не то

ПОчему же. Пусть он это несколько не корретно выразил, но суть-то к архитектуре работы ИМХО очень похожая.
PM ICQ   Вверх
Irokez
Дата 16.7.2005, 19:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


индеец
***


Профиль
Группа: Участник Клуба
Сообщений: 1180
Регистрация: 20.10.2004

Репутация: нет
Всего: 53



Цитата(Mal @ 16.7.2005, 19:43)
ПОчему же. Пусть он это несколько не корретно выразил, но суть-то к архитектуре работы ИМХО очень похожая.

первая ссылка содержит бредовый спор о преимуществе флеша над фронт пейджем, а вторая об ограничении тегов в HTML smile
PM   Вверх
Иль
Дата 3.8.2005, 20:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 544
Регистрация: 3.3.2005
Где: Москва

Репутация: нет
Всего: 14



Зашел сюда и думаю, что ж за технология такая новая, почему не слышал, почему ж по ней статей так мало (на мысли не наводит?). Надо не отстать от жизни, нырнул - а зря.

Ну вообще Я применяю эту технологию. Так строчку с сервера в 1кб в 0,5мБ HTML превращаю, но все по порядку.

Irokez, да нет никакой технологии. Ты попался, это удочка. Рассматривай AJAX как проект. Просто есть JS smile и это технология. Ентот вопрос надо было в javaScript задавать, мы там уже поулыбались над этим всем. Все б в одном топике уместили - мало не покажется smile.

Поднастроили мальца сервер + PHP (кстати, сильно облегчили хостерам жизнь), взяли статичные старые технологии HTML и CSS, взяли JS (основа всему smile smile smile ), заменили щелкающий нульфрейм на ожидаемый давно объект XMLHttpRequest. Правда все сделали как лет 6-7 назад, спасибо MS что не обратил внимания на как всегда гнусные нападки как всегда ленивых программистов из стана "ОТКРЫТЫЕ коды", а то так бы и щелкали клювами досих пор smile.

Елки и спустя 6 лет, если не брать в расчет нульфрейм, зачем-то эту смесь обозвали красиво. Как приятно, теперь я один из избранных. Я не просто знаю Apache, PHP, CSS, HTML, JS, я владею технологией AJAX. УРА товарищи!!! Слава партии! Особенно меня убила фраза "... причисляет человека к сонму людей, идущих не то чтобы в ногу со временем, а даже слегка впереди" в купе с датой написания статьи от 16.06.05. Читая думал, что максимум 2003.

Какой переворот, какая революция??? Заглушка на тощие каналы пользователей и ограничения хостеров на работу скриптов и баз данных, позволяющая перекладывать вычисления на сторону пользователя. У кого контент мультимедийный (картинок хватает) это вообще капля в море.

Цитата
С AJAX проблема заключается в том, что писать такие приложения - задача трудоемкая. Нужно написать и отладить на JavaScript движок из десяти или двадцати тысяч строк кода плюс реализовать серверную часть
Так скажем, это бред сивой кобылы. Строчек с сотню хватает, если без дизайнерских извратов. Автор видимо предполагает, что все мы будем заниматься порталами.

Цитата
Движок AJAX
Громко сказано. Просто логика реализованная на JS + DOM. Сам напиши и никакого XML, жирно будет для каналов наших посетителей.

Цитата
обмен и обработка данных в виде XML и XSLT;
Автора заносит, понятно, дань моде. Забудь, что ты с нашего посетителя возьмешь? Данные формы в формате XML? Круто конечно. Все его, юзверя, данные тонкой строчкой из бродилки высасываются. А вот в обратную сторону, тут уж насколько личной хотелки разработчика хватит

Цитата(Mal @ 16.7.2005, 19:29)
В принципе замена несовершенному во многом javaScript, которая соединена с XML, это хорошо.

Mal Hack, уважаю, читал посты, но ща за тебя возьмусь smile... Я попросил бы не выражаться в обществе ... smile.
Вообще не хороший пунктик прослеживается в твоих мыслях, обрати, пожалуйста, внимание.
Как ты себе представляешь в таком разношерстном геморрое как клиентская сторона замену JS. Там совершеннее ничего и нету. Потом AJAX расшифровывается как асинхронный JavaScript + XML.
Подмывает перечислить несовершенства PHP 5 smile, но поскольку это тоже мой любимец руку не подниму smile
Ты не так понял. Никто нечего не меняет, без JS это не будет жить.
На самом деле ужасно интересна точка зрения со стороны. Что несовершенного в ИМХО идеальном JS? Я не обижаюсь, я люблю оба языка и базы данных тоже все люблю smile, но все-таки поделись (Модератор, потерпи, пожалуйста, немного нашего офтопа).


--------------------
Ты виндусятник?... А я да. smile
PM MAIL ICQ Skype GTalk   Вверх
Irokez
Дата 3.8.2005, 20:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


индеец
***


Профиль
Группа: Участник Клуба
Сообщений: 1180
Регистрация: 20.10.2004

Репутация: нет
Всего: 53



сорри Иль, в посте слов много, а смысла нуль..
PM   Вверх
Sardar
Дата 3.8.2005, 20:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 4
Всего: 317



Иль согласен во всём кроме XML/XSLT

Немного истроии: XmlHttpRequest это один из интерфейсов msxml, которым все могут пользоваться из C/C++/VB, а также из браузера JS/VBS под ИЕ. W3C не могла подойти со своим стандартом, а народ полюбил фичу(кстати с ИЕ5.5 началось по моему), вот мозилла и Опера тоже имплементировали этот обьект. Под IE это обычный ActiveX, как и любые другие обьекты, например XMLDOM(IE не поддерживает DOM2, создание документов как мозилла).

НО XmlHttpRequest это не просто обращение к серверу, это удобная фича опрашивать вебсервисы и форматировать результат с помощью XSLT. Я сейчас при выводе таблиц отдаю клиенту XML, который трансформируеться на клиенте в XHTML таблицы. Вообще вебсервисы это мощная вещь, а XmlHttpRequest позволяет работать с ними из клиента(толстый клиент). Именно за этим стояла идея(потому он и XMLHttpRequest). А то что народ просто текст или JS код подгружает и эвалюирует потом, ну дык на то она и свобода smile

Цитата
Все его, юзверя, данные тонкой строчкой из бродилки высасываются

Не совсем так, можно в теле HTTP запроса отправить полный XML документ, другое дело что "нафига" smile

Точно не уверен, но есть "технология" REST, "позволяющая" отправлять параметры серваку GET/POST, а назад получать XML. Как видишь "новыми технологиями" могут назвать что угодно))
Xотя ИМXО общаться XML(SOAP/XML-RPC) гибче, но редко нужно для странички smile

А вообще Иль не стоит столько сарказма, человек не может "знать всё" и возможно есть вещи от тебя, которые бы "улыбнули" других smile


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
Mal Hack
Дата 3.8.2005, 21:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 1
Всего: 261



Цитата
Mal Hack, уважаю, читал посты, но ща за тебя возьмусь smile... Я попросил бы не выражаться в обществе ... smile.
Вообще не хороший пунктик прослеживается в твоих мыслях, обрати, пожалуйста, внимание.
Как ты себе представляешь в таком разношерстном геморрое как клиентская сторона замену JS. Там совершеннее ничего и нету. Потом AJAX расшифровывается как асинхронный JavaScript + XML.
Подмывает перечислить несовершенства PHP 5 smile, но поскольку это тоже мой любимец руку не подниму smile

Поясни, я не совсем тебя понял.
PM ICQ   Вверх
Иль
Дата 8.8.2005, 02:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 544
Регистрация: 3.3.2005
Где: Москва

Репутация: нет
Всего: 14



Mal Hack, вот твоя фраза:
Цитата(Mal @ 16.7.2005, 19:29)
В принципе замена несовершенному во многом javaScript, которая соединена с XML, это хорошо.

AJAX это не замена "несовершенного во многом" javaScript. Также интересно, что, по мнению опытного в WEB человека, в JS не совершенного? Я спрашиваю не для спора, а чтоб сложить это со своим мнением. Потом мне несовершенность JS не видется.



Цитата(Sardar @ 3.8.2005, 20:55)
не стоит столько сарказма, человек не может "знать всё" и возможно есть вещи от тебя, которые бы "улыбнули" других

Sardar, поражает твоя осведомленность, ты как энциклопедия.
По предмету: считаю статью вредной. Потом я жажду таких улыбок, они идут на пользу мне smile. Когда я уверен - пишу одной строчкой, когда есть сомнения или что-то цепляет - выкладываю обширно, забывая размешивать ИМХОй. Если я скрою что-то что вызовет улыбки здесь, то вопервых я буду носить в себе заблуждения, а во вторых это обязательно выпловет в месте, где это будет вызывать не улыбки, а потерю $ smile. Я вижу когда люди молчат, чтоб выглядеть умнее. Мне таких жалко.



Цитата(Irokez @ 3.8.2005, 20:26)
сорри Иль, в посте слов много, а смысла нуль..

это не так.
Хоть понял, что это не технология?
Цитата(Irokez @ 16.7.2005, 18:49)
Буду благодарен за любые материалы по этой технологии

Уверен? smile
Цитата(Irokez @ 16.7.2005, 18:49)
но очень хочу применить ее грамотно на практике.

Применить ее грамотно, значит грамотно строить логику на JS, грамотно пользоваться JS, если, конечно, с WEB сервером легко управляешся.
Цитата(Irokez @ 16.7.2005, 18:49)
какие части интерфейса (и в каких случаях) должны быть обновляемы черех AJAX, а какие обновлением страницы, или переходом на новую?

Все в твоих руках. Например, если нужно одобрение поисковиков, то строй сайт с перехождением на новую страницу для разных тематик. Если это что-то корпоротивное, то можеш все построить на одной единственной странице. И никаких обновлений страницы, забудь.
Цитата(Irokez @ 16.7.2005, 18:49)
Что должен возвращать сервер: готовый HTML код, который вставляем вместо старого или данные в виде XML используя которые с помощью JavaScript обновляем страницу?

В зависимости от того, как ты построиш клиентскую сторону. Важно не что тебе вернет сервер, а что ты будеш делать на клиентской стороне. От этого и строй чего будет сервер передавать.


--------------------
Ты виндусятник?... А я да. smile
PM MAIL ICQ Skype GTalk   Вверх
Irokez
Дата 8.8.2005, 09:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


индеец
***


Профиль
Группа: Участник Клуба
Сообщений: 1180
Регистрация: 20.10.2004

Репутация: нет
Всего: 53



Цитата
Цитата(Irokez @ 3.8.2005, )
сорри Иль, в посте слов много, а смысла нуль..

это не так.
Хоть понял, что это не технология?

а я должен был это понять?

Цитата
Цитата(Irokez @ 16.7.2005, )
Буду благодарен за любые материалы по этой технологии

Уверен? smile

??

Цитата

Цитата(Irokez @ 16.7.2005, )
но очень хочу применить ее грамотно на практике.

Применить ее грамотно, значит грамотно строить логику на JS, грамотно пользоваться JS, если, конечно, с WEB сервером легко управляешся.

при чем тут WEB-сервер?

Цитата
Цитата(Irokez @ 16.7.2005, )
какие части интерфейса (и в каких случаях) должны быть обновляемы черех AJAX, а какие обновлением страницы, или переходом на новую?

Все в твоих руках. Например, если нужно одобрение поисковиков, то строй сайт с перехождением на новую страницу для разных тематик. Если это что-то корпоротивное, то можеш все построить на одной единственной странице. И никаких обновлений страницы, забудь.

какие поисковики??
в посте я привел пример проектируемой системы, зачем системе идексация в поисковиках?

Цитата
Цитата(Irokez @ 16.7.2005, )
Что должен возвращать сервер: готовый HTML код, который вставляем вместо старого или данные в виде XML используя которые с помощью JavaScript обновляем страницу?

В зависимости от того, как ты построиш клиентскую сторону. Важно не что тебе вернет сервер, а что ты будеш делать на клиентской стороне. От этого и строй чего будет сервер передавать.

как раз таки наоборот, клиентскую сторону я буду строить в зависимости от того, что будет передаваться сервером
PM   Вверх
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Продвижение и оптимизация сайтов | Следующая тема »


 




[ Время генерации скрипта: 0.1435 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.