С помощью JQuery я загружаю набор данных почтового индекса с помощью вызова json, который загружается один раз при загрузке документа для заполнения выбора параметра. Я могу сделать это в рамках одной функции, и это нормально.
Однако каждый раз, когда пользователь выбирает другой почтовый индекс в select, код запускается (через .change), и мне нужно загрузить (довольно большие) те же json данные снова для заполнения некоторых других полей.
Поскольку первый вызов содержится в функции обратного вызова, данные никогда не выходят за пределы этой области и не могут быть повторно использованы снова.
Если кто-то меняет элементы 100 раз, это 100 раз загружает данные, что кажется расточительным и медленным.
Есть ли способ вызвать эти данные один раз и сделать их доступными для глобальная / более широкая область видимости, чтобы она была доступна для функции .change?
EDIT Вот код:
$(document).ready(function() {
GetPostcodes();
$("#postcodes").change(function() {
console.log("Selection Changed to " + $(this).val());
});
});
function GetPostcodes() {
$.getJSON("population.json", function(cases) {
var filtercases = $(cases).filter(function(i, n) {
return n.POA_NAME16 >= "2450" && n.POA_NAME16 <= "2489"
});
var postcodes = [];
$.each(filtercases, function(i, n) {
postcodes.push(n);
});
postcodes = postcodes.unique();
postcodes = postcodes.sort();
var options = [];
for (var i = 0; i < postcodes.length; i++) {
options.push('<option value="',
postcodes[i].POA_NAME16, '">',
postcodes[i].POA_NAME16, '</option>');
}
$("#postcodes").html(options.join(''));
});
}
Вот как JSON выглядит:
{
"POA_NAME16": 2000,
"Combined": "BARANGAROO,DARLING HARBOUR,,DAWES POINT,HAYMARKET,MILLERS POINT,PARLIAMENT HOUSE,SYDNEY,SYDNEY SOUTH,THE ROCKS",
"Tot_p_p": 27411
},
{
"POA_NAME16": 2006,
"Combined": "THE UNIVERSITY OF SYDNEY",
"Tot_p_p": 1259
},
Итак, хотя я использую только данные почтового индекса в первом вызове для заполнения раскрывающегося списка, я хотел бы иметь доступ ко всей информации о том, когда свойство .change запускается для отображения другой в формирование.
Ура