如何延迟3秒。在开始发送请求ajax之前?
这意味着用户必须在ajax发送请求之前保持在第3页的底部。
如果用户在页面底部停留不到3秒,则ajax不会发送请求。
如何应用此代码执行此操作?
if(($(window).scrollTop() + $(window).height() == $(document).height())){
$('#loading').show();
$.ajax({
url: 'some_page.php',
type: 'POST',
data: $('#form_id').serialize(),
cache: false,
success: function(data){
$("#loading").fadeOut("slow");
$('#content_data').append(data);
}
});
return false;
}
答案 0 :(得分:1)
在三秒内开始:
var timer = setTimeout(function() {
//...your code here...
}, 3000); // 3000ms = 3 seconds
为了防止它发生,在此时间结束之前,请执行以下操作:
clearTimeout(timer);
在您的情况下,您需要:
在事件处理程序之外声明timer
(我假设您的代码在某个事件处理程序中)
可能将其设置为0
以开始(0
表示“无计时器”),不允许浏览器使用0
作为{{1的返回值}})
在您的处理程序中,在检查位置之前,使用setTimeout
取消之前的任何计时器
如果条件为真,请使用上面的示例安排函数在三秒钟内运行
然后,如果条件变为真且保持为真,则ajax调用将在三秒后运行。如果它变为真但在三秒内再次变为假,则它将不会运行。