Ленивая загрузка в Knockout JS

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

9
задан MrSaints 22 March 2012 в 18:35
поделиться