Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 17.12.2011, 00:48
Интересующийся
Отправить личное сообщение для Gesandte Посмотреть профиль Найти все сообщения от Gesandte
 
Регистрация: 13.12.2011
Сообщений: 26

Выполнить 2 разных действия при одном запросе.
Добрый вечер.

Начну сразу с абстрактного примера.....а лучше с реального
К примеру на майл.ру при просмотре списка сообщений, есть возможность отметить какие-либо сообщения и удалить их. При этом соотвественно происходит 2 действия, 1 - удаление из БД, 2 - подгрузка обновленного списка с сообщения.

как вприниципе реализовывается такой алгоритм?

Пока только одно предположение и не факт что рабочее, но в любом случае оно мне не нравится:
существует один файл обработчик запроса. В начале там происходит удаление сообщение, дальше в тексте обработчика идет запрос к БД и вывод сообщений. Получается что при вызове js-функции вначале мы удаляем сообщения и после получаем новый список из БД, рез-т выводим в одном диве.

Аналогично можно использовать и добаление данных в БД и т.д.

Вопрос такой, как правильно реализовать данный механизм?
Ответить с цитированием
  #2 (permalink)  
Старый 17.12.2011, 00:59
Аватар для trikadin
Модератор
Отправить личное сообщение для trikadin Посмотреть профиль Найти все сообщения от trikadin
 
Регистрация: 27.04.2010
Сообщений: 3,417

Повесить один обработчик и вызвать 2 ф-ции. Если хочется красиво, расширяемо и т.д. - использовать Deferred.
__________________
Читайте:
Ты любопытный) Всё-таки, ничему в этом мире не помешает хорошая доля юмора)
Как спросить, чтобы вам ответили
Часто Задаваемые Вопросы (FAQ)
Ответить с цитированием
  #3 (permalink)  
Старый 17.12.2011, 01:11
Интересующийся
Отправить личное сообщение для Gesandte Посмотреть профиль Найти все сообщения от Gesandte
 
Регистрация: 13.12.2011
Сообщений: 26

trikadin, имеешь ввиду 2 ф-ции на .onreadystatechange? а напрямую можно так сделать или же заюзать одну ф-цию обертку, внутри которой вызывать уже нужные ф-ции.....если так покатит
Ответить с цитированием
  #4 (permalink)  
Старый 17.12.2011, 01:17
Аватар для trikadin
Модератор
Отправить личное сообщение для trikadin Посмотреть профиль Найти все сообщения от trikadin
 
Регистрация: 27.04.2010
Сообщений: 3,417

Сообщение от Gesandte
trikadin, имеешь ввиду 2 ф-ции на .onreadystatechange?
Это имею в виду:
function func1(){};
function func2(){};
// всякий код...
xhr.onreadystatechange= function(){
 if (this.readyState==4 && this.status==200) {
  func1();
  func2();
 }
};


А про обёртку - я вам скинул ссылку.
__________________
Читайте:
Ты любопытный) Всё-таки, ничему в этом мире не помешает хорошая доля юмора)
Как спросить, чтобы вам ответили
Часто Задаваемые Вопросы (FAQ)
Ответить с цитированием
  #5 (permalink)  
Старый 17.12.2011, 01:59
Интересующийся
Отправить личное сообщение для Gesandte Посмотреть профиль Найти все сообщения от Gesandte
 
Регистрация: 13.12.2011
Сообщений: 26

trikadin, это я и подразумевал, говоря про обертку, только немного в другой записи так и сделаю, спасибо за помощь))) а пихать лишний код пока никчему
Ответить с цитированием
  #6 (permalink)  
Старый 17.12.2011, 02:19
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

хм... а разве эти оба действия не на сервере делаются? Причем тут два действия на скрипте? Можно отправить серверу один раз две команды, удаление и получение списка. Тем самым вы одним запросом и удалите запись(и) и получите свежий список.

........А хотя по разделу в теме... видимо юзаете NodeJS... я правильно понял?

Последний раз редактировалось devote, 17.12.2011 в 02:21.
Ответить с цитированием
  #7 (permalink)  
Старый 17.12.2011, 02:26
Аватар для trikadin
Модератор
Отправить личное сообщение для trikadin Посмотреть профиль Найти все сообщения от trikadin
 
Регистрация: 27.04.2010
Сообщений: 3,417

Сообщение от devote
хм... а разве эти оба действия не на сервере делаются? Причем тут два действия на скрипте? Можно отправить серверу один раз две команды, удаление и получение списка. Тем самым вы одним запросом и удалите запись(и) и получите свежий список.
Можно отправить команду и получить и список, за один запрос. Чего лишние запросы плодить.

Сообщение от devote
........А хотя по разделу в теме... видимо юзаете NodeJS... я правильно понял?
Тема и про аякс, вообще-то. И вообще, все забивают на раздел)
__________________
Читайте:
Ты любопытный) Всё-таки, ничему в этом мире не помешает хорошая доля юмора)
Как спросить, чтобы вам ответили
Часто Задаваемые Вопросы (FAQ)
Ответить с цитированием
  #8 (permalink)  
Старый 17.12.2011, 02:28
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

Сообщение от trikadin
Тема и про аякс, вообще-то. И вообще, все забивают на раздел)
Ну это понятно что аякс, я просто подумал может он там NodeJS юзает на стороне сервера, вот и спрашивает как в JS что-то сделать... Но видимо NodeJS он не юзает, значит первый параграф моего прошлого поста остается в силе... ибо не вижу смысла двадцать запросов делать когда можно все сделать одним.
Ответить с цитированием
  #9 (permalink)  
Старый 17.12.2011, 02:32
Аватар для trikadin
Модератор
Отправить личное сообщение для trikadin Посмотреть профиль Найти все сообщения от trikadin
 
Регистрация: 27.04.2010
Сообщений: 3,417

Ну да, логично.
__________________
Читайте:
Ты любопытный) Всё-таки, ничему в этом мире не помешает хорошая доля юмора)
Как спросить, чтобы вам ответили
Часто Задаваемые Вопросы (FAQ)
Ответить с цитированием
  #10 (permalink)  
Старый 17.12.2011, 12:56
Интересующийся
Отправить личное сообщение для Gesandte Посмотреть профиль Найти все сообщения от Gesandte
 
Регистрация: 13.12.2011
Сообщений: 26

дык один запрос в один обработчик пойдет.....а хочется котлеты с мухами не мешать (один файл полностью обрабатывает запросы - удаление, добавление, изменение и тд, один выводит данные), можно конечно все это инклудить в один, чтобы не смешивать......
по времени обработки, если пойдет 2 запроса если не ошибаюсь чуть больше уйдет.....но разница как мне кажется будет невелика или нет?
больше минусов не вижу пока)
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Совершение действия при удерживании клавиши BorodinKO Общие вопросы Javascript 3 26.06.2011 00:59
Как выполнить код javascript при инклюде странички на php wfire jQuery 7 27.05.2011 14:43
Действия при наведении на элемент Garik Элементы интерфейса 6 24.08.2010 20:11
FireFox не дергает onreadystatechange при синхронном запросе? Василий Б. AJAX и COMET 0 01.03.2010 16:18
Действия при клике kefiads Ваши сайты и скрипты 5 18.06.2009 10:33