NameCtrl OnStatusChange-Event часто вызывается

Я использую NameCtrl, чтобы показать более конкретные пользовательские данные в списке пользователей. Событие OnPropertyClosed вызывается при изменении статуса отображаемого пользователя. К сожалению, в моем приложении оно вызывается более 5 раз подряд с одним и тем же пользователем и одинаковым статусом. Это должно произойти, или я могу что-то сделать, чтобы остановить?

У меня есть две привязки для нокаута. Блок инициализации будет выполняться для каждого пользователя. Имя Ctrl-Binding лежит на промежутке i, в котором отображается имя пользователя и статус.

ko.bindingHandlers['nameCtrl'] = {
    init: function (element, valueAccessor) {

        var value = valueAccessor();
        var user = ko.unwrap(value);

        $(element).hover(function () {
            NameCtrlViewModel.prototype.showOOUI(this, user);
        }, function () {
            NameCtrlViewModel.prototype.hideOOUI();
        });
    }
};

Привязка statusIndicator к элементу, который показывает статус. С помощью метода GetStatus (предоставляемого NameCtrl) я "регистрирую" пользователя для StatusChange-Listener, который выполняет OnStatusChangedEvent.

ko.bindingHandlers.statusIndicator = {
    init: function (element, valueAccessor) {
        var value = valueAccessor();
        var user = ko.unwrap(value);
        $(element).data("user", user);
        NameCtrlViewModel.prototype.nameCtrl.GetStatus(user, "1");
    }
};

Вот как я устанавливаю свою функцию как вызываемую при изменении статуса

self.nameCtrl.OnStatusChange = self.onStatusChange;

И здесь я обновляю свой statusIndicator текущим статусом.

NameCtrlViewModel.prototype.onStatusChange = function (user, status, id) {

};

Теперь, как уже упоминалось ранее, моя функция onStatusChange иногда вызывается более 5 раз подряд с тем же статусом и пользователем. В списке со многими пользователями я боюсь, что это замедлит работу моего приложения.

Привет Темурон

0 ответов

Другие вопросы по тегам