Многократные обратные вызовы метода страницы - PullRequest
2 голосов
/ 03 августа 2010

Я вызываю метод страницы при наведении курсора на слайдер изображения, чтобы показать изображение из базы данных. Проблема в том, что я получаю несколько обратных вызовов. Кто-нибудь знает, как решить эту проблему?

Код, который я использую для метода страницы:

var contextArray = "img";
pageMethodConcept = {
    callServerSideMethod: function (id) {
        PageMethods.GetItemLargeImage(id, pageMethodConcept.callback, pageMethodConcept.Failcallback, contextArray);

    }, callback: function (result, userContext, imagePreview) {
        //alert(result);
        if (userContext = "img") {
           //replace img source with result
            document.getElementById("displayPreviewImage").src = result;

            return false;
        }
    }, Failcallback: function (result, userContext) {
        alert("failed");
    }
}

Код для установки таймера:

var alertTimer = 0;

if (alertTimer == 100) {
    alert("time 100");
    alertTimer = setTimeout(pageMethodConcept.callServerSideMethod(this.id), 0);

}
else {
    alertTimer = setTimeout(pageMethodConcept.callServerSideMethod(this.id), 100);
    alert("time ");
}

Ответы [ 2 ]

1 голос
/ 03 августа 2010

Как вы думаете, что именно делает код таймера?

if (alertTimer == 100) {...

100?Что такое 100?

setTimeout и clearTimeout

Вы должны сделать что-то вроде:

if (alertTimer != 0) {
    /* timeout pending */
    clearTimeout(alertTimer);
    alertTimer = ...
} else {
    /* set timeout */
    alertTimer = ...
}
0 голосов
/ 03 августа 2010

Добавьте таймер и отправьте обратный вызов только в том случае, если определенное количество времени прошло с момента последнего обратного вызова. Вы можете сделать это с помощью счетчика.

...