Ключевое решение заключается в том, хотите ли вы загрузить всю информацию в начале (в этом случае у пользователя может возникнуть задержка, пока вы загружаете все модели для марок, которые им не нужны) или вы хочу получить модели, как они выбирают марку. Ответ будет зависеть от
- сколько данных может быть
- как быстро вам нужно, чтобы страница была
- сколько нагрузки будет на сервере
и т. д.
В принципе, можете ли вы позволить себе повлиять на производительность при загрузке всех моделей в начале?
Если вы решите, что можете позволить себе загружать все в начале, я думаю, что описанный вами подход разумен, хотя я бы не стал использовать массив для внешнего контейнера. Я бы сделал это:
var models = {
Audi: ["Quattro","A4", ...],
BMW: ["M3", "M6", ...],
...
};
То, что хранится в переменной «models», на самом деле является объектом javascript, хотя люди иногда называют его «ассоциативным массивом».
Обратите внимание, что в этом сценарии вы на самом деле не выполняете «AJAX», поскольку вы не получаете данные с сервера на лету.
Альтернативный сценарий заключается в том, что вы задаете URL-адрес, по которому вы можете запросить его с помощью модели, и он ответит списком производителей. Затем вы запускаете запрос, когда пользователь выбирает модель. Это AJAX.