Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 检查ajax函数中是否存在动态url_Javascript_Jquery_Ajax_Url - Fatal编程技术网

Javascript 检查ajax函数中是否存在动态url

Javascript 检查ajax函数中是否存在动态url,javascript,jquery,ajax,url,Javascript,Jquery,Ajax,Url,我正在使用一个脚本,通过解析页面设置为的“blogurl.com/page/#”URL中的帖子,自动在滚动条上加载博客帖子 我在一个测试博客上工作,目前我有2页的测试文章 当我向下滚动到某个点时,第2页的帖子将加载并解析到容器中。我在第3页上没有任何帖子,所以第3页不存在(即blogurl.com/page/3不是真正的url)。但是,该脚本只检查url上是否有帖子,而不检查url本身是否确实存在 (函数($){ $.fn.swoosh=函数(加载imgurl,回调){ 如果(!loading

我正在使用一个脚本,通过解析页面设置为的“blogurl.com/page/#”URL中的帖子,自动在滚动条上加载博客帖子

我在一个测试博客上工作,目前我有2页的测试文章

当我向下滚动到某个点时,第2页的帖子将加载并解析到容器中。我在第3页上没有任何帖子,所以第3页不存在(即blogurl.com/page/3不是真正的url)。但是,该脚本只检查url上是否有帖子,而不检查url本身是否确实存在

(函数($){
$.fn.swoosh=函数(加载imgurl,回调){
如果(!loadingImgUrl){
加载imgurl=“加载…”;
}
if(回调==null){
回调=-1;
}
var postList=this;
var关断=假;
var pageNumber=2;
var urlArray=window.location.href.toString().split(“/”);
var blogUrl=urlArray[0]+“/”+urlArray[2]+“/”+urlArray[3]+“/”;
var baseUrl=blogUrl+“page/”;
var postrl=“”;
var处理=假;
//在“立柱”列表的末尾插入加载杆
如果(加载imgurl!=“加载…”){
postList.parent().append(“”);
}否则{
postList.parent().append(“”+loadingImgUrl+“”);
}
$(“.loading”).hide();//确保加载栏已隐藏
$(文档)。滚动(函数(){
//如果它已经运行,如果它已经关闭,或者如果没有第二页,则退出功能
如果(处理| |关闭| |页码==0){
返回false;
}
//当滚动到页脚时,开始滚动!
if($(窗口).scrollTop()>=$(文档).height()-$(窗口).height()-$(.blog\u页脚”).height()-150){
处理=真;
//当前正在处理,所以在完成之前不要再次调用函数
$(“.loading”).fadeIn(200);//加载栏中的淡入
postrl=baseUrl+pageNumber;//计算要加载的页面
//AJAX调用
$.get(姿势、函数(数据){
//仅从加载的页面中获取post项目
var posts=$(数据).find(“.col项”);
//检查加载的页面是否包含内容
如果(posts.length>0){
console.log(加载imgurl);
//淡出加载栏,然后将新项目附加到列表的末尾
$(“.loading”).fadeOut(200,function(){
posts.appendTo(“.blog list.container wrap”);
});
pageNumber++;//增加要加载的页面。
$(“.next posts link”).attr(“href”,baseUrl+pageNumber);
}
//如果加载的页面没有内容,则表示我们已经到达了结尾。
否则{
关闭=真;
$(“.next posts link”)。在('next')之后;
$(“.next posts链接:非(.unactive)”).remove();
$(“.loading”).fadeOut(200);
}
processing=false;//我们已经完成了处理,所以请为下一次进行设置
setTimeout(函数(){
twttr.widgets.load();
IN.parse();
FB.XFBML.parse();
gapi.plusone.go();
}, 350);
});
}
});
};

})(jQuery)您是否尝试添加失败处理程序:

如果请求返回404,则应触发此操作

您还可以使用此选项检查请求的状态:

.fail(function(response){
   if(response.status == 404){
      ...
   }
}

这是因为当问题发生时,我可以记录一条失败消息。这是在事实发生之后,所以我不确定我是否可以用它来阻止问题的发生。发生的“问题”是什么?上面写着装货?您只需在失败时删除加载状态。您可以在尝试加载内容之前进行另一次调用,基本上进行调用并查看是否失败,如果不是再次调用而是加载内容,这似乎效率低下,但如果您有权修改后端,您可以在响应中添加一个标题,告诉您有多少页面理想情况下我希望避免404,但我不是真正的ajax高手。我使用了on,但没有按照你的建议隐藏加载。非常感谢你的帮助。
.fail(function(response){
   if(response.status == 404){
      ...
   }
}