页面方法多个回调

时间:2010-08-03 10:02:23

标签: c# javascript asp.net webmethod pagemethods

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

我用于页面方法的代码:

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 个答案:

答案 0 :(得分:1)

您认为计时器代码究竟做了什么?

if (alertTimer == 100) {...

100?什么是100?

setTimeout and clearTimeout

你应该做的事情如下:

if (alertTimer != 0) {
    /* timeout pending */
    clearTimeout(alertTimer);
    alertTimer = ...
} else {
    /* set timeout */
    alertTimer = ...
}

答案 1 :(得分:0)

添加计时器并仅在最后一次回调传递一定时间后发送回调。你可以用一个柜台来做。