我正在鼠标悬停图片滑块上调用页面方法来显示数据库中的图像。问题是我得到了多个回调。有谁知道如何解决这个问题?
我用于页面方法的代码:
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 ");
}
答案 0 :(得分:1)
您认为计时器代码究竟做了什么?
if (alertTimer == 100) {...
100?什么是100?
你应该做的事情如下:
if (alertTimer != 0) {
/* timeout pending */
clearTimeout(alertTimer);
alertTimer = ...
} else {
/* set timeout */
alertTimer = ...
}
答案 1 :(得分:0)
添加计时器并仅在最后一次回调传递一定时间后发送回调。你可以用一个柜台来做。