![]() |
|
Модераторы: Sardar, Aliance |
![]()
|
|
| tikitiki |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 330 Регистрация: 10.5.2005 Репутация: нет Всего: нет |
Небольшой вопрос. Ответьте, пожалуйста. Если сайт есть на php+mysql и я хочу применить ajax местами для добавления кода или для его изменения, то реально ли ajax применить? Насколько трудоёмко или лучше сайт начинать на ajax делать с нуля?
|
|||
|
||||
| Grig |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 809 Регистрация: 29.4.2005 Где: Иркутск Репутация: 2 Всего: 16 |
Это абсолютно несложно =)
просто надо вписать Яваскриптовые функции по отправке и приему запросов к серверу/от сервера. вот простой примерчик
вызов:
php-файл(в случае примера -- get_shema.php), может делать все что угодно, в том числе обращаться к MYSQL. Все что он вернет, в браузере выложиться в div resultId -------------------- |
||||
|
|||||
| tikitiki |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 330 Регистрация: 10.5.2005 Репутация: нет Всего: нет |
Grig, спасибо большое. Понятно почти всё. Я вижу, что на самом деле можно пробовать применить ajax. Только вот здесь не совсем ясно.
Ты имел ввиду наверно, что результат выложится в var resultId? Если нет, то поясни, что за div и что с ним делать. |
|||
|
||||
| Atlete |
|
||||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 105 Регистрация: 15.8.2007 Репутация: нет Всего: нет |
результат работы скрипта можно вывести в <div>
это выглядет примерно так
в резульате на странице HTML это будет выглядеть так: в том месте где стоит <div> у тебя будет выведен например какой нить текст. Чтобы увидеть как все это работает воспользуйся примером а в файле get_shema.php напиши следующий код
"Лучше один раз увидеть чем сто раз услышать" (с) - народная мудрость. |
||||||
|
|||||||
| bars80080 |
|
|||
![]() прапор творюет ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 15 Всего: 315 |
здесь уже код написан так, что предполагается наличие у тебя на странице элемента (не важно див или другой блок) с id="ResultId"
а если нужно обработать приходящие данные, то достаточно убрать 20-ую строчку, и заместо неё вставить обработку |
|||
|
||||
| tikitiki |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 330 Регистрация: 10.5.2005 Репутация: нет Всего: нет |
Уже понятней.
Вот здесь под resultId в комментарии имеется ввиду скорее id html-элемента. Если так, то всё ясно. Только зачем вот здесь в 25 строке программы стоит var resultId? Видимо в неё просто подставляем значение id html-элемента, чтоб потом можно в функции getRequest, например, из того же кода по getElementById обратиться к данному элементу? |
|||
|
||||
| Ghirik |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 919 Регистрация: 26.3.2007 Репутация: 13 Всего: 20 |
Да простят меня модераторы! (просто я на эту штуку показыва раз пятьдесят... в этом форуме..)
Заметно (не вооруженным глазом), что Вам tikitiki, практически ни чего и не надо... Просто скрытый фрейм... и всё.. кто-то ошибочно посчитал, что времена фреймов проши, видимо по незнанию. Но, лет десять они будут работать... http://door-to.ru/LamerPhotoBlog/scripts/G...ough_iframe.htm Вот здесь http://forum.vingrad.ru/forum/topic-193742...y1404359/0.html примеры php-файлов. Это сообщение отредактировал(а) Ghirik - 9.5.2008, 12:30 -------------------- Отдадим всё клиенту, пускай его машина мучается... |
|||
|
||||
| tikitiki |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 330 Регистрация: 10.5.2005 Репутация: нет Всего: нет |
Ghirik, насчёт ничего не нужно - не знаю - по-моему интуиция в данном случае сработала не на полную. Мне очень хочется применять ajax. Прочитал полторы уже хороших книги, а здесь хотел получить ответ хотя бы насколько трудоёмко ajax применить. За ссылки спасибо - разбираюсь.
|
|||
|
||||
| Fortop |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2200 Регистрация: 13.11.2007 Где: Донецк Репутация: 1 Всего: 42 |
tikitiki, абсолютно не трудоемко. Надо просто правильно построить архитектуру приложения.
Поскольку у тебя уже есть готовый код, вычлени для себя, те небольшие части, которые ты хочешь перенести на ajax. Например, новостную ленту или еще что-то. И по частям - переводи -------------------- Мир это Я. Живее всех живых. |
|||
|
||||
| solenko |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1473 Регистрация: 15.1.2006 Где: Украина Репутация: 9 Всего: 67 |
Меня, признаться, удивляют заявления о нетрудоемкости.
Вам всего-то нужно: 1. Навесить элемент, который будут использовать ajax, обработчики 2. Продубировать view в формате JSON/XML/HTML_но_без_лишнего/ваш_вариант 3. Возможно поменять верску для того чтобы было куда вставлять ответы и это было удобно. Вот умножте эти три пункта на количество use case и получите трудоемкость. -------------------- Ла-ла-ла-ла Заметьте, нет официального подтверждения, что это не просто четыре слога. |
|||
|
||||
| Fortop |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2200 Регистрация: 13.11.2007 Где: Донецк Репутация: 1 Всего: 42 |
solenko,
Ты чего? Вообще-то ты должен был разбить свое представление на блоки еще на этапе создания приложения без AJAX. В случае с переводом на AJAX ты всего лишь будешь использовать отдельные блоки, и не более того. Зачем дублировать? В большинстве случаев JSON вообще нужен, а будешь использовать XML или HTML в зависимости от того, какой формат является базовым. Чаще это HTML. Вот если ты криво проектировал свое приложение, тогда да - геморроя не оберешься. Но тут уж извиняйте, сами выиноваты. -------------------- Мир это Я. Живее всех живых. |
|||
|
||||
| solenko |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1473 Регистрация: 15.1.2006 Где: Украина Репутация: 9 Всего: 67 |
Fortop, почему-то html в моих задачах составляет 5% а остальные 95% -- JSON/XML (это уже дело вкуса).
Банальный пример -- добавление товара в корзину. Без ajax -- редирект на referer и там уже загрузка обновленного блока корзины. ajax -- ответ в неважно каком формате, содержащий новую сумму и количество и, возможно, намиенование товара. -------------------- Ла-ла-ла-ла Заметьте, нет официального подтверждения, что это не просто четыре слога. |
|||
|
||||
| Fortop |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2200 Регистрация: 13.11.2007 Где: Донецк Репутация: 1 Всего: 42 |
solenko, а без AJAX у тебя это как происходило?
Разве не точно также? Добавлено через 1 минуту и 55 секунд Эм, был невнимателен. Кто тебе мешает использовать в AJAX такой же редирект? Считай что корзину ты подключаешь как iframe. Роль JavaScript - в этом случае минимальна. Просто сменить урл у соответствующего фрейма -------------------- Мир это Я. Живее всех живых. |
|||
|
||||
| solenko |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1473 Регистрация: 15.1.2006 Где: Украина Репутация: 9 Всего: 67 |
Fortop, читайте сообщение выше. Там есть упоминание того как это происходило без ajax
-------------------- Ла-ла-ла-ла Заметьте, нет официального подтверждения, что это не просто четыре слога. |
|||
|
||||
| Fortop |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2200 Регистрация: 13.11.2007 Где: Донецк Репутация: 1 Всего: 42 |
О, и такой вопрос - XSLT ты делаешь уже на стороне клиента? -------------------- Мир это Я. Живее всех живых. |
|||
|
||||
| solenko |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1473 Регистрация: 15.1.2006 Где: Украина Репутация: 9 Всего: 67 |
Fortop, вы никогда не задумывались, что не все проекты ориентированы на использование X технологий и могут использовать нечто отличное от XSLT в качестве view?
Добавлено через 6 минут и 11 секунд 1. Использовать iframe не позволяет, наверное, религия 2. Даже если использовать, зачем мне на местен корзины полная страница описания товара? Или вы предлагаете после редиректа в акшине просмотра товара анализировать хедеры и, если это таки xmlhttp отдавать только корзину а не страницу полностью? -------------------- Ла-ла-ла-ла Заметьте, нет официального подтверждения, что это не просто четыре слога. |
|||
|
||||
| Fortop |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2200 Регистрация: 13.11.2007 Где: Донецк Репутация: 1 Всего: 42 |
solenko, С удовольствием послушаю примеры архитектуры
P.S. какой смысл в этих двух фразах тогда? JSON - может пригодиться для вывода небольшой порции данных. Добавлено через 8 минут и 9 секунд solenko, Я предлагаю разделить view - на блоки. И в данном конкретном случае использовать только блок корзины, а не всей страницы. Подобный вопрос, поднимался тут Почему мне и было бы интересно послушать о вариантах архитектуры приложения. Да, думаю, и не только мне. Добавлено через 11 минут и 18 секунд Например вся старница http://shop/catalog/video/view/full только корзина http://shop/catalog/video/view/basket -------------------- Мир это Я. Живее всех живых. |
||||
|
|||||
| tikitiki |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 330 Регистрация: 10.5.2005 Репутация: нет Всего: нет |
Спасибо всем за полезную информацию. Вопрос закрыт.
|
|||
|
||||
| solenko |
|
||||||||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1473 Регистрация: 15.1.2006 Где: Украина Репутация: 9 Всего: 67 |
Т.к. отдельной темы не нашел, то продолжаем оффтоп тут (а вообще устроит в любой ветке) )
Смысл в кусочке "дело вкуса". После применения моего вкуса получается JSON.
Обновление блока корзины это большая порция данных? Представьте себе, если бы тот же gmail обновлял при каждом запросе новых писем весь блок сообщений. Лично мне бы такое не понравилось. В случае обновления корзины ответ будет выглядеть как:
Он и так разделен. Вот только, как я уже писал, в случае plain html у акшина, обрабатывающего добавление в корзину, нет view в принципе, то, в случае axaj, нужно отдавать хоть что-то, т.е. этот view создать.
Ну и? ДО этого был только полный просмотр. И как теперь отдавать другой? Длеать отдельный action? Анализировать в action/view параметр и отдавать кусок? Я же и не говорил что нужно будет переверстать все по-другому. Речь как раз о том, что прийдется отдавать не страницу полностью, а только какой-то кусочек (формат абсолютно не важен). Попутно предлагаю решить задачку с предлагаемым вами обменом кусками html ) У пользователя отвалилась сессия. Стандартная реакция -- редирект на форму логина. А как быть если в ответ от сервера ждем кусочек html? Это сообщение отредактировал(а) solenko - 10.5.2008, 23:54 -------------------- Ла-ла-ла-ла Заметьте, нет официального подтверждения, что это не просто четыре слога. |
||||||||
|
|||||||||
| Fortop |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2200 Регистрация: 13.11.2007 Где: Донецк Репутация: 1 Всего: 42 |
solenko,
я создал отдельную тему http://forum.vingrad.ru/index.php?showtopi...t&p=1508110 Поскольку дискуссия имеет как бы две части. AJAX-реализация и шаблоны. Но все они на мой взгляд завязаны именно на правильную организацию внутренней структуры приложения. Очень хотелось бы услышать мнения на этот счет. -------------------- Мир это Я. Живее всех живых. |
|||
|
||||
![]()
|
| Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | JavaScript: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |