Показать сообщение отдельно
  #7 (permalink)  
Старый 28.03.2016, 20:12
Аватар для destus
Профессор
Отправить личное сообщение для destus Посмотреть профиль Найти все сообщения от destus
 
Регистрация: 18.05.2011
Сообщений: 1,207

Цитата:
что нужно поправить?
Да много всего. Почему переменная callback создается в глобальном пространстве? Зачем строка 16?

Идея такая: Пусть на этапе инициализации cache = []. Считали значение из select[name="mark"] (например, номер опции).
Номер есть в массиве cache? Достали по номеру инфу записали в #brn. Иначе выполнили HTTP запрос и в функции обратного вызова success записали инфу по номеру в массив и в #brn.

И вот таким образом создается разреженный массив, который позволяет уменьшить нагрузку на сервер, да и клиенту не придется ждать, пока придет ответ с сервера, если он есть в кэше. А если есть желание, лучше юзать фичи Set/Map в ES6. Скажем в Set номера опций, а в Map - отображение их в данные.
Ответить с цитированием