Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Архитектура AJAX'овых приложений 
:(
    Опции темы
BobiKK
Дата 18.9.2007, 13:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 655
Регистрация: 1.12.2005
Где: Essen, Deutschlan d

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



Собственно, сколько не пытался делать задачек с использованием ajax, в конце выходил жудкий неуниверсальный велосипед. Поэтому решил подойти к вопросу более серьезно, то бишь продумать всё заранее.
Итак, имеется на стороне сервера Zend Framework, у клиента prototype.js + ExtJs. Задача: упростить, сделать более универсальной разработку в команде.
Допустим, имеется общий обработчик для response-объектов. Сам response - JSON'овский объект с полями status (набор флагов), script (дополнительный js-скрипт, формируемый на сервере), update (массив из id-элементов, которые надо обновить, и сами данные) и redirect (урл, куда-нидо редиректить (иногда нужен именно window.location.href, а не просто редирект через заголовки)). На стороне сервера существует простенький класс, который помогает этот response-объект сформировать. В принципе, для задач обновить какой-нибудь div - хватит. 
Но, как вы сами понимаете, задачи-то совсем разные бывають. И если мне надо не просто обновить содержимое div'a, а, скажем, изменить фон этого div'a, приходится использовать поле script в response-объекте. Выходит, в контроллере я занимаюсь измением дизайна, что совсем не гут. И никому не захочется лезть в application/modules/blog/controllers/indexController.php в строчку 250 чтобы изменить цвет с #cccccc на #cccccd. 
Ок, допустим я буду в этом script подключать другие скрипты. Например, как здесь: http://www.artlebedev.ru/tools/technogrette/js/include/. Но в этом случае FireBug выкручивает фигу и я не могу дебаггить подключаемые скрипты. А посколько я дурак, то мне без дебаггера тяжко.
Есть, конечно, ещё вариант - $script =  file_get_contents('мега-супер-скрипт.жыэс'); Теоретически, все довольны. Но как-то некрасиво выглядит.
Собственно говоря, что делать?
PM MAIL   Вверх
Daevaorn
Дата 18.9.2007, 15:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2155
Регистрация: 29.11.2004
Где: Москва

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



Цитата(BobiKK @  18.9.2007,  14:12 Найти цитируемый пост)
Но, как вы сами понимаете, задачи-то совсем разные бывають. И если мне надо не просто обновить содержимое div'a, а, скажем, изменить фон этого div'a, приходится использовать поле script в response-объекте. Выходит, в контроллере я занимаюсь измением дизайна, что совсем не гут. И никому не захочется лезть в application/modules/blog/controllers/indexController.php в строчку 250 чтобы изменить цвет с #cccccc на #cccccd. 

Тогда сделай из сервера только постовщика дынных. А почти всё бизнес логику и презентацию вынеи в код на строно клиента. Тогда сервер возвращает сигнал, что надо изменить фон, и ты уже через JS меняешь его на необходимый в зависимости от неких суловий. тогда у тебя всё будет в одном месте
PM MAIL WWW   Вверх
BobiKK
Дата 19.9.2007, 17:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 655
Регистрация: 1.12.2005
Где: Essen, Deutschlan d

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



Ну, тоже конечно вариант. Только вот сколько времени займет адаптация под разные браузеры
PM MAIL   Вверх
Daevaorn
Дата 19.9.2007, 17:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2155
Регистрация: 29.11.2004
Где: Москва

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



Цитата(BobiKK @  19.9.2007,  18:29 Найти цитируемый пост)
Ну, тоже конечно вариант. Только вот сколько времени займет адаптация под разные браузеры 

Нисколько. Ты же прототипом пользуешься.
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

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


 




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


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

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