我正在使用jQuery Countdown 插件来实现倒计时并在计时器到期时调用 Web 服务。
问题是我在页面上使用 AJAX,并且必须重新设置每个 AJAX 请求的倒计时,如下所示:
var prm = Sys.WebForms.PageRequestManager.getInstance();
prm.add_endRequest(SetupTimer);
/*Initial setup*/
$(document).ready(function() {
SetupTimer();
});
function SetupTimer() {
var serverTime = new Date();
var cutoffTime = new Date($("#<%= cutoffTime.ClientID %>").val());
serverTime.setHours(serverTime.getHours());
if (serverTime < cutoffTime) {
$('#timer').countdown('destroy'); /*should work, but doesn't*/
$('#timer').countdown({ until: cutoffTime, serverTime: serverTime, onExpiry: OrderingEnded, format: 'yowdHMS' });
}
else
OrderingEnded();
}
出于某种原因,这会根据请求创建一个新的 Countdown 实例,从而在 Countdown 到期时导致对 Webservice 的大量调用。
如何确保一次只存在一个倒计时实例?
编辑
在文档中找到了这个,虽然不适合我
$('#timer').countdown('destroy');