2

我正在将鼠标悬停在图像滑块上调用页面方法以显示数据库中的图像。问题是我收到了多个回调。有谁知道如何解决这个问题?

我用于页面方法的代码:

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 ");
}
4

2 回答 2

1

你认为计时器代码到底在做什么?

if (alertTimer == 100) {...

100?什么是 100?

setTimeout 和 clearTimeout

您应该执行以下操作:

if (alertTimer != 0) {
    /* timeout pending */
    clearTimeout(alertTimer);
    alertTimer = ...
} else {
    /* set timeout */
    alertTimer = ...
}
于 2010-08-03T11:01:14.987 回答
0

仅当从最后一个回调过去了一定时间时,才添加一个计时器并发送回调。你可以用计数器来做。

于 2010-08-03T10:27:30.363 回答