Цитата:
|
что нужно поправить?
|
Да много всего. Почему переменная callback создается в глобальном пространстве? Зачем строка 16?
Идея такая: Пусть на этапе инициализации cache = []. Считали значение из select[name="mark"] (например, номер опции).
Номер есть в массиве cache? Достали по номеру инфу записали в #brn. Иначе выполнили HTTP запрос и в функции обратного вызова success записали инфу по номеру в массив и в #brn.
И вот таким образом создается разреженный массив, который позволяет уменьшить нагрузку на сервер, да и клиенту не придется ждать, пока придет ответ с сервера, если он есть в кэше. А если есть желание, лучше юзать фичи Set/Map в ES6. Скажем в Set номера опций, а в Map - отображение их в данные.