js回调函数该怎么用?

LiveAsaMonster 2012-10-11 09:37:54
我想在导出数据之后刷新页面,这个导出是要消耗时间的,所以必须用到回调,但是下面的用法没起到作用,求指点。。

function export_data(callback){

var export_url = "?app_act=goods/goods/export_data";
window.location.href=export_url;

callback();
}
function callback(){
location.reload();
}
...全文
4344 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
Walking_on_space 2014-04-25
  • 打赏
  • 举报
回复
嗯是的我也支持使用异步,这样不用再次请求服务器的数据。
mzy_chaco 2013-09-12
  • 打赏
  • 举报
回复
引用 14 楼 OneDayOf2010 的回复:
应该这样, function export_data(callback){ var export_url = "?app_act=goods/goods/export_data"; window.location.href=export_url; callback(); } function callback(){ location.reload(); } export_data(function(){ callback(); }); 楼主你定义了两个方法,并且export_data方法是带有回调的,可是你没有调用啊,你只是定义了
正解~~当然,13楼的也是一个解决方法
微wx笑 2013-04-15
  • 打赏
  • 举报
回复
引用 13 楼 kongxh1218 的回复:
用Ajax: JavaScript code?123456789101112function export_data(callback){ var export_url = "?app_act=goods/goods/export_data"; jQuery.ajax({ url:export_url, success:funct……
支持这种解决办法。
OneDayOf2010 2013-03-28
  • 打赏
  • 举报
回复
应该这样, function export_data(callback){ var export_url = "?app_act=goods/goods/export_data"; window.location.href=export_url; callback(); } function callback(){ location.reload(); } export_data(function(){ callback(); }); 楼主你定义了两个方法,并且export_data方法是带有回调的,可是你没有调用啊,你只是定义了
LiveAsaMonster 2012-10-11
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 的回复:]

业务逻辑不通
基础知识不过关

window.location.href=export_url; 这个时候会怎么样?

location.reload(); 这个时候会怎么样?


上面2句 先后放一起 会怎么样?
[/Quote]
大神,我只想知道怎么样执行第一个之后再执行第二个。。业务逻辑就不要管了
LiveAsaMonster 2012-10-11
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 的回复:]

没太明白楼主的这两段代码:
var export_url = "?app_act=goods/goods/export_data";
window.location.href=export_url;
但是觉得这两段代码执行完以后,并不能表示“数据已经导出”,所以,实际上,你还是在数据未导出完全的时候就执行了callback。
不知道楼主的代码环境是怎么样的,您应该首先找到“数据已经导出”……
[/Quote]
是直接导出excel到页面,这个方法没有返回值
LiveAsaMonster 2012-10-11
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 的回复:]

而且,Lz,你这刚执行完什么数据导出。就又再location.reload();
那岂不是没完没了了?
[/Quote]
export_data()这个方法是实时触发的
zhouhai3032 2012-10-11
  • 打赏
  • 举报
回复
我猜到了,楼主可能是有个列表,列表上方有个按钮,点击该按钮,执行导出函数从后台导出数据,然后刷新页面。楼主为什么不使用ajax丫,自带callback。
泡泡鱼_ 2012-10-11
  • 打赏
  • 举报
回复
而且,Lz,你这刚执行完什么数据导出。就又再location.reload();
那岂不是没完没了了?
zhouhai3032 2012-10-11
  • 打赏
  • 举报
回复
没太明白楼主的这两段代码:
var export_url = "?app_act=goods/goods/export_data";
window.location.href=export_url;
但是觉得这两段代码执行完以后,并不能表示“数据已经导出”,所以,实际上,你还是在数据未导出完全的时候就执行了callback。
不知道楼主的代码环境是怎么样的,您应该首先找到“数据已经导出”的点,在这之后使用回调函数。
泡泡鱼_ 2012-10-11
  • 打赏
  • 举报
回复
你需要做的是在var export_url = "?app_act=goods/goods/export_data";
后面再附加一个标识参数,存在那个参数时,让它执行你预定的函数就是了。比如:

var export_url = "?app_act=goods/goods/export_data&exec=1";
或者,如果只要存在app_act就是需要执行你说的回调函数的话,那那个参数也不用再额外附加了。
然后页面中绑定一个onload事件
window.onload=function(){
var exec=1;//这里由后台判断是否执行,输出一个标识符,比如:0为不执行,1就执行;
if(exec==1){
//dosomething
}
}
KK3K2005 2012-10-11
  • 打赏
  • 举报
回复
业务逻辑不通
基础知识不过关

window.location.href=export_url; 这个时候会怎么样?

location.reload(); 这个时候会怎么样?


上面2句 先后放一起 会怎么样?
LiveAsaMonster 2012-10-11
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]

window.location.href=export_url;---->执行跳转页面, 原先的页面数据都会卸载掉。
我不太明白你什么意思,为什么要reload。
知道reload有个参数么?客户端加载以及服务器端加载(记得没错的话应该是)

说明白点 抽空给你解答
[/Quote]
那个“跳转页面”只是一个导出方法,不是页面,还是在当前页执行的,执行完后我需要刷新页面
lw5853103 2012-10-11
  • 打赏
  • 举报
回复
window.location.href=export_url;---->执行跳转页面, 原先的页面数据都会卸载掉。
我不太明白你什么意思,为什么要reload。
知道reload有个参数么?客户端加载以及服务器端加载(记得没错的话应该是)

说明白点 抽空给你解答
LiveAsaMonster 2012-10-11
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

function export_data(){

var export_url = "?app_act=goods/goods/export_data";
window.location.href=export_url;

callback();
}
function callback(){
location.reload();
}
这样试试
……
[/Quote]
这样就不是回调了啊,会第一个方法还在执行的时候立刻刷新页面,第一个导出数据要花时间的
  • 打赏
  • 举报
回复
function export_data(){

var export_url = "?app_act=goods/goods/export_data";
window.location.href=export_url;

callback();
}
function callback(){
location.reload();
}
这样试试
kongxh1218 2012-10-11
  • 打赏
  • 举报
回复
用Ajax:

function export_data(callback){
var export_url = "?app_act=goods/goods/export_data";
jQuery.ajax({
url:export_url,
success:function(){
callback();
}
});
}
function callback(){
location.reload();
}

87,910

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧