Показать сообщение отдельно
  #56 (permalink)  
Старый 03.10.2013, 06:17
Профессор
Отправить личное сообщение для Shitbox2 Посмотреть профиль Найти все сообщения от Shitbox2
 
Регистрация: 04.10.2010
Сообщений: 571

Сообщение от nerv_ Посмотреть сообщение
вот мы и пришли к событиям
Совсем бы не хотелось. События, как мне кажется, это такая штука, которая должна быть связана только с бизнес-логикой, т.е. в основной программе возникают и там же ловятся. Если же каждый плагин будет плодить свои события, можно очень быстро замусорить глобальную область видимости. Если же события будут локальными... Ну и что это за события такие? :-)
----
ИМХО, события нужны для асинхронных вещей: пользователь нажал что-то, кто-то написал в чате и т.п. (мы не создаем запрос). Синхронные вещи — это удел обещаний: запрос к серверу, загрузка файлов (мы создали запрос и ожидаем ответ)

Сообщение от nerv_ Посмотреть сообщение
я бы все-таки добавлял загрузчик, внутри которого очередь и все остальное
Типа твоего uploader? Когда дело до оптимизации дойдет, скорее всего придется общий код в прототип выносить и что-то такое делать... Но не понимаю, зачем, вообще, нужно выносить очередь? Сперва думал вынести в область видимости только информацию об общем прогрессе, а очередь вынес скорее из-за свойства queue.length :-). Ну и типа можно полностью перехватить управление и пересортировать ее, чтобы, например сначала загружались самые маленькие файлы или, вообще, компоновать все мелкие файлы и загружать их в одном запросе... Но это такая чушь, что без нее будет только лучше.

Сообщение от nerv_ Посмотреть сообщение
Еще у меня есть мысль позаимствовать функции transformResponse для разбора ответа сервера. Что думаешь на этот счет?
Эту, как понимаю
function(data) {
  if (isString(data)) {
    // strip json vulnerability protection prefix
    data = data.replace(PROTECTION_PREFIX, '');
    if (JSON_START.test(data) && JSON_END.test(data))
      data = fromJson(data);
    }
    return data;
  }
}

У меня подобным занимается функция-обертка над angular.fromJson
function _parseJSON (data) {
  if (typeof data !== 'object') {
    try {
      return angular.fromJson(data);
    } catch (e) {
      return false;
    }
  }
  return data;
  }
}

В принципе, идея здравая. Правда, не знаю, на сколько оправданы все их проверки. И в моем случае я парсю, только если этого не сделал $http, т.е. и так почти всегда использую дефолтный transformResponse.

Последний раз редактировалось Shitbox2, 03.10.2013 в 06:19.
Ответить с цитированием