jquery - 我只想要一个 timeajax 请求
问题描述
它总是在页面滚动时请求,但我只需要每页一个请求。
这是我的代码:
function loadLikeMoreVideos(category_id) {
$('.like-more-videos').html();
$(window).scroll(function() {
// if($(window).scrollTop() == $(document).height() - $(window).height()) {
if($(window).scrollTop()) {
$.post('<?php echo base_url('watch/ajax/get_more_videos'); ?>',{category_id: category_id},function(e){
if(e.status=='success'){
$('.like-more-videos').html(e.html);
}
if(typeof callback === 'function'){
callback();
}
});
}
});
}
解决方案
在 中设置 a variable
,global scope
然后在发送false
后将其设置为first ajax
。
如下所示
var canAjax = true;
function loadLikeMoreVideos(category_id) {
$('.like-more-videos').html();
$(window).scroll(function() {
// if($(window).scrollTop() == $(document).height() - $(window).height()) {
if($(window).scrollTop()) {
if(canAjax){ // Check if we can send ajax
canAjax = false; // We're sending ajax, so the if statement above will fail if we try again
$.post('<?php echo base_url('watch/ajax/get_more_videos'); ?>',
{category_id: category_id},function(e){
if(e.status=='success'){
$('.like-more-videos').html(e.html);
}
if(typeof callback === 'function'){
callback();
}
});
}
}
});
}
如果您需要another
在设定的滚动距离后发送 ajax 请求,只需将 保存window.scrollY
到变量中,然后window.scrollY
在用户再次滚动时将其与新值进行比较,例如,检查新值 - 旧值 > 600 (因此 600px 已经过去),我们可以再次 ajax。
推荐阅读
- python - 如何使用 shapely 提取包含在 3 级中的多个多边形?
- python - 我可以在哪里下载 rcFile 扩展模板文件进行测试
- python - 用python中的嵌套哈希映射解决哈希映射冲突
- pandas - ModuleNotFoundError:没有名为“pandas._libs.interval”的模块 | 在 Docker 容器中从 git 安装 pandas
- typescript - 检查变量是否是联合类型的子类型
- security - HSTS 标头中的 max-age 指令在语义上是否必要?
- python - 处理小文件时也超出了 IOPub 数据速率
- apache-spark - spark,python 中的 erfinv 等价物
- linux - 想为我的树莓派创建一个特定的脚本来监视目录并执行一些操作
- excel - 获取具有第二个非空白值的行列表和第二个非空白出现的列标题