javascript - 如果我滚动如何使其成为延迟加载的一个请求,则多个请求将成为 ajax
问题描述
如果我尝试通过滚动多个请求来调用 Ajax 之后将使用相同的 ajax 如何解决这个问题
$(window).scroll(function(){
var element = $('.MainChatList');
var scrolled = false;
if (element.scrollTop() + element.innerHeight() >= element[0].scrollHeight)
{
if(!scrolled){
scrolled = true;
var scroll = 'scroll';
loadMain(null, scroll);
scrolled = false;
}
}
});
loadMain Ajax()
$.ajax({
type : 'POST',
url : 'process.php',
data : { request : "LoadMainView", limit:limit, scroll:scroll }
}).done(function( data ) {
$(".AdminMainViewLoader").hide();
if(data)
{
var obj = JSON.parse(data);
var html_content = obj.html_content;
var scr = obj.scroll;
var data_type = obj.data_type;
if(scr == 'scroll')
{
console.log(scr);
$(".MainChatList tbody").append(html_content);
}
else
$("#MainView .MainChatData .main-two").html(html_content);
});
这是接收多个请求的ajax请求
解决方案
// taking a flag
isRequested=false;
// Now checking if not requested
if(!isRequested){
$.ajax({
type : 'POST',
url : 'process.php',
data : { request : "LoadMainView", limit:limit, scroll:scroll }
beforeSend:function(xhr){
// here we are setting isRequested to true
isRequested=true;
}
}).done(function( data ) {
$(".AdminMainViewLoader").hide();
if(data)
{
var obj = JSON.parse(data);
var html_content = obj.html_content;
var scr = obj.scroll;
var data_type = obj.data_type;
if(scr == 'scroll')
{
console.log(scr);
$(".MainChatList tbody").append(html_content);
}
else
$("#MainView .MainChatData .main-two").html(html_content);
// here we are setting isRequested to false
isRequested=false;
});
}
推荐阅读
- python - 如何找到 sys.argv() 参数的位置?
- javascript - 如何在 ReactJS 中的 3 个组件之间切换
- java - 如何在 Java 中插入 Oracle 日期数据类型
- python - GCP 上的多线程 Python 脚本中的 IO 速度突然下降
- amazon-web-services - 解决 dynamodb 的 terraform 中的“ValidationException:TimeToLive 已禁用”错误
- docker - SSH无法在带有traefik的docker上使用Gitea
- utf-8 - 在 colab 中解码 gb-2312 文件
- apache-spark - 如何将 MariaDB Connector/J 与 Pyspark 一起用于 JDBC?
- powershell - 使用 PowerShell 从 .csv 更新 Active Directory 管理器属性
- c# - 以编程方式关闭与 IIS 的 HTTP/2 连接