Я пытаюсь загрузить и проанализировать данные 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, я не хочу отделять их и загружать для каждой страницы.