Я пытаюсь загрузить и проанализировать данные json из внешнего источника в таблицу с помощью Knockout JS. Пока что все прошло успешно с помощью следующего кода:
// Snippet
var self = this;
self.notices = ko.observableArray([]);
self.currentTab = ko.observable(5);
ko.computed(function() {
$.getJSON('http://json.source.here.com/tab/'+ko.toJS(self.currentTab), function(threads) {
if (threads !== null) {
self.notices(threads);
} else {
self.notices([]);
}
});
}, self.notices);
Когда пользователь нажимает на определенную вкладку, он загружает данные json (темы форума) на основе выбранного значения вкладки (self.currentTab) в таблицу в виде строк (self.notices).
Однако все работает, как и ожидалось. Я заметил, что при просмотре других страниц, которые не имеют вышеуказанных привязок, json все еще загружается (запускается $ .getJSON). Я обеспокоен тем, что это может иметь некоторые негативные последствия для производительности моего веб-сайта, так как он загружает исходный код json, даже если он не нужен.
РЕДАКТИРОВАТЬ: Я понял это через консоль разработчика Google Chrome.
В настоящее время у меня есть модель представления в файле JavaScript, который также используется всеми остальными страницами. Он состоит из привязок для всех страниц.
Мой вопрос: как я могу загрузить данные json на определенную страницу или только при наличии привязок - отложенная загрузка? Желательно, чтобы все привязки были сохранены в одном файле JavaScript, я не хочу выделять их и загружать отдельно для каждой страницы.