Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #41 (permalink)  
Старый 10.10.2011, 13:26
Аватар для Riim
Рассеянный профессор
Отправить личное сообщение для Riim Посмотреть профиль Найти все сообщения от Riim
 
Регистрация: 06.04.2009
Сообщений: 2,379

Сообщение от x-yuri
monolithed, т.е. он позволяет создавать цепочки из асинхронных вызовов? Или в каких случаях лучше всего видны его преимущества?
насколько я понимаю, делаем два запроса и ставим общий обработчик, который сработает после завершения обоих. Вроде того: http://habrahabr.ru/blogs/nodejs/116581/ . В ноде такая хрень реально пригодилась бы.
Ответить с цитированием
  #42 (permalink)  
Старый 10.10.2011, 13:33
Аватар для x-yuri
Отправить личное сообщение для x-yuri Посмотреть профиль Найти все сообщения от x-yuri
 
Регистрация: 27.12.2008
Сообщений: 4,201

ну может в ноде...
Ответить с цитированием
  #43 (permalink)  
Старый 10.10.2011, 17:59
Особый гость
Посмотреть профиль Найти все сообщения от monolithed
 
Регистрация: 02.04.2010
Сообщений: 4,260

Сообщение от x-yuri
т.е. он позволяет создавать цепочки из асинхронных вызовов?
в том числе.
Сообщение от x-yuri
Или в каких случаях лучше всего видны его преимущества?
Как правило при работе с Ajax:
$.when($.get('foo.html'), $.get('bar.html')).done(function(arg1, arg2) {
     alert("выполнены все запросы");
});
// однако если в when передается Deferred Object, то предпологается что запросы уже выполнены
Ответить с цитированием
  #44 (permalink)  
Старый 10.10.2011, 21:58
Аватар для x-yuri
Отправить личное сообщение для x-yuri Посмотреть профиль Найти все сообщения от x-yuri
 
Регистрация: 27.12.2008
Сообщений: 4,201

идея реализации асинхронных цепочек:
var funcs = [
    function(NEXT) {
        new Request('foo.html', onSuccess: function(arg1){
            this.arg2 = arg2;
            NEXT();
        }).get();
    },
    function(NEXT) {
        new Request('bar.html', onSuccess: function(arg2){
            this.arg2 = arg2;
            NEXT();
        }).get();
    },
    function() {
        alert("выполнены все запросы");
    }
];
var i=-1;
function _next() {
    i++;
    if ( ! funcs[i]) {
        return;
    }
    funcs[i].call(funcs, _next);
}
_next();


а можно какой-нибудь конкретный пример двух запросов с одним обработчиком в конце? Ну или просто что-то, что не укладывается в раки асинхронной цепочки...
Ответить с цитированием
  #45 (permalink)  
Старый 10.10.2011, 22:30
Аватар для float
Профессор
Отправить личное сообщение для float Посмотреть профиль Найти все сообщения от float
 
Регистрация: 01.07.2010
Сообщений: 387

Цитата:
а можно какой-нибудь конкретный пример двух запросов с одним обработчиком в конце? Ну или просто что-то, что не укладывается в раки асинхронной цепочки...
например запросом удаляется 1-на запись из таблицы, а у тебя в UI можно выбрать несколько записей и удалить их группой.

только какие преимущества перед стандартными методами синхронизации?
стандартизировано... доступ извне... ну мб кароче...
Ответить с цитированием
  #46 (permalink)  
Старый 10.10.2011, 23:22
Отправить личное сообщение для Андрей Параничев Посмотреть профиль Найти все сообщения от Андрей Параничев
 
Регистрация: 21.02.2008
Сообщений: 1,250

Сообщение от vflash Посмотреть сообщение
jQuery это инструмент для работы с результатами querySelectorAll . потому если этот функционал не нужен то и в jQuery нет надобности. весь остальной функционал там второстепенен и по качество оставляет желать лучшего.
Вы абсолютно не правы. querySelectorAll в jQuery как раз в роли кросс-браузерной реализации с возможностью fallback. Все остальное является первостепенным: анимации, управление DOM, асинхронные запросы на сервер.

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

Да и вообще, разницы нет, использовать, или нет. Только зачастую лишняя трата времени. Ведь не важно, используется библиотека, или нет, если речь идет о каком-нибудь сайте, например. Важно чтобы работало и быстро. И делалось быстро. Все остальное для кодосектантов.
Ответить с цитированием
  #47 (permalink)  
Старый 11.10.2011, 00:46
Аватар для Gozar
Отправить личное сообщение для Gozar Посмотреть профиль Найти все сообщения от Gozar
 
Регистрация: 07.06.2007
Сообщений: 7,504

Сообщение от Андрей Параничев Посмотреть сообщение
Вы абсолютно не правы. querySelectorAll в jQuery как раз в роли кросс-браузерной реализации с возможностью fallback. Все остальное является первостепенным: анимации, управление DOM, асинхронные запросы на сервер.
Это вы абсолютно не правы. Анимацию я в гробу видал делать на jquery. Если мы конечно говорим про анимацию, а не складывание, раскладывание одного дива. Шустрая анимации сейчас возможна только на чистом js под конкретный браузер.
Управление DOM, хватает и стандартных средств, а запросы на сервер 20 строчек. Я ещё jquery не знал, а ajax-ом пользовался вовсю.

jquery это querySelectorAll. Они пытаются наворотить сейчас и вылезут из маленького размера, а тогда она уже нафиг не нужна.
__________________
Последний раз редактировалось Gozar, Сегодня в 24:14.
Ответить с цитированием
  #48 (permalink)  
Старый 11.10.2011, 10:25
Аватар для x-yuri
Отправить личное сообщение для x-yuri Посмотреть профиль Найти все сообщения от x-yuri
 
Регистрация: 27.12.2008
Сообщений: 4,201

Сообщение от float
например запросом удаляется 1-на запись из таблицы, а у тебя в UI можно выбрать несколько записей и удалить их группой.
делаем запрос который удаляет список записей и deferred не нужен. Он для каких-то сложных случаев, я таких не знаю.

Андрей Параничев, а какие минусы?
Ответить с цитированием
  #49 (permalink)  
Старый 11.10.2011, 13:27
Особый гость
Посмотреть профиль Найти все сообщения от monolithed
 
Регистрация: 02.04.2010
Сообщений: 4,260

Сообщение от x-yuri
Он для каких-то сложных случаев
Я бы сказал более специфических.
Допустим есть такая ситуация: интерфейс подбора тур. путевки.

Кликнули на выбор страны, послали запрос, но отобразили пользователю полученный результат, затем послали еще какой-то запрос (к примеру выбор города), выполнили тоже самое.
Затем пользователь решил нажать кнопку "оплатить", тут то мы смотрим если предыдущие запросы все выполнены без ошибок то выполняется callback (переводим пользователя на интерфейс оплаты) или fallback если где-то был косяк.
Ответить с цитированием
  #50 (permalink)  
Старый 11.10.2011, 14:53
Аватар для Gozar
Отправить личное сообщение для Gozar Посмотреть профиль Найти все сообщения от Gozar
 
Регистрация: 07.06.2007
Сообщений: 7,504

Сообщение от monolithed Посмотреть сообщение
Допустим есть такая ситуация
Я может быть совсем от жизни отстал, но мне всегда казалось что для этой ситуации вообще deferred не нужен. Можно решать по разному такую задачу, но даже если решать подобным образом достаточно свойства в котором хранить true, false.

или я чего-то недопонял тут:
Сообщение от monolithed Посмотреть сообщение
но отобразили пользователю полученный результат
__________________
Последний раз редактировалось Gozar, Сегодня в 24:14.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Первый Moscow JavaScript Meetup korenyushkin Общие вопросы Javascript 0 26.07.2011 15:23
Последние книги по JavaScript! monolithed Учебные материалы 7 26.10.2010 19:40
Выдвет ошибку JavaScript Ромио Opera, Safari и др. 4 21.10.2010 20:34
JavaScript на Яндекс.Фотки - почему тормозит браузеры? ZavFirefox Javascript под браузер 23 27.09.2009 19:24
Создание Новой Библиотеки JavaScript Rudolf Eremyan Элементы интерфейса 9 21.09.2009 22:45