扫码关注官方订阅号
在js中如何实现在后台没有返回数据的时候做另一件事情?
学习是最好的投资!
在你使用类似ajax之类的函数的时候,默认是异步回调执行的,你可以通过callback传入完成之后要调用的函数。你调用ajax函数本来就不会阻塞执行,因此,你可以在发起ajax请求之前播放加载动画,而传入ajax的callback事件里停止动画。
ajax
callback
jquery的ajax请求默认是异步的,需要传入参数async:true来手动指明为异步操作。感谢评论区 @SevenOutman 提醒。
jquery
async:true
完整代码可能如下:
$.ajax({ url: "something.url", async: true, //异步请求 beforeSend: function(xhr) { loading('start'); }, complete: function(xhr, TS) { loading('end'); } });
我觉得就是一个if,else问题
if
else
if(data){ //有数据执行…… } else { //无数据执行…… }
希望对你有帮助
粗略想想,应该有两种情况:
后台返回错误
后台连接超时
但无论是哪种情况,在前端都是可以捕获到的,只要捕获到错误时处理你说的“另一件事”就好了。所以你的问题是?
补充:
按照你提供的新需求,假设你的ajax使用jquery发送,代码可以这样写:
var a = function(){ //TBD, the loading stuff }; var b = function(){ //TBD, the callback to be executed after ajax finished }; a();//call a $.ajax('url') .done(function(result){ //TBD, handle result from server b();//call b since data is received });
微信扫码关注PHP中文网服务号
QQ扫码加入技术交流群
Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
PHP学习
技术支持
返回顶部
在你使用类似
ajax之类的函数的时候,默认是异步回调执行的,你可以通过callback传入完成之后要调用的函数。你调用
ajax函数本来就不会阻塞执行,因此,你可以在发起ajax请求之前播放加载动画,而传入ajax的callback事件里停止动画。补充
jquery的ajax请求默认是异步的,需要传入参数async:true来手动指明为异步操作。感谢评论区 @SevenOutman 提醒。代码
完整代码可能如下:
我觉得就是一个
if,else问题希望对你有帮助
粗略想想,应该有两种情况:
后台返回错误
后台连接超时
但无论是哪种情况,在前端都是可以捕获到的,只要捕获到错误时处理你说的“另一件事”就好了。所以你的问题是?
补充:
按照你提供的新需求,假设你的
ajax使用jquery发送,代码可以这样写: