リンクのクリックをデバウンスすることはできますか?ユーザーがpjaxリンク上でクリックする回数が多すぎると、新しいコンテンツの読み込みが中断されます。AJAXリンクをデバウンスでクリックする
$(document).on('click', 'a[data-pjax]', loadNewContent);
var $target = $('main.content section.context'),
$fake = $('main.fake'),
$fakeContext = $('main.fake section.context');
function loadNewContent() {
event.preventDefault();
var $this = $(this),
url = $this.attr('href');
$fake.addClass('is--loading');
$.pjax({
url: url,
fragment: 'body',
container: $fakeContext
});
$fake.one(transitionEnd, function() {
$target.html($fake.find('section.context').html());
$fake.removeClass('is--loading');
$fake.off(transitionEnd);
});
}
私はこれを試しましたが、loadNewContentの起動を停止しました。このような(https://github.com/cowboy/jquery-throttle-debounce)
$(document).on('click', 'a[data-pjax]', $.debounce(1000, true, function() {
loadNewContent();
}));
何がトリガされ、応答が受信されたときに行うに設定すると、保留中にフラグを設定している場合。 – binariedMe
@binariedMeはい、うまくいくように聞こえます。あなたは詳しく説明できますか? –
@ProfessorAllmanデバウンスメソッドを更新して申し訳ありません... –