jQuery カウントダウン プラグインを使用してカウントダウンを実装し、タイマーが切れたときに 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 が多数呼び出されます。
カウントダウンのインスタンスが一度に 1 つだけ存在するようにするにはどうすればよいですか?
編集
ドキュメントでこれを見つけましたが、私にはそれをしません
$('#timer').countdown('destroy');