日期:2014-05-16  浏览次数:20365 次

js回调函数该怎么用?
我想在导出数据之后刷新页面,这个导出是要消耗时间的,所以必须用到回调,但是下面的用法没起到作用,求指点。。

function export_data(callback){

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

callback();
}
function callback(){
location.reload();
}

------解决方案--------------------
function export_data(){

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

    callback();
}
function callback(){
    location.reload();
}
这样试试
------解决方案--------------------
你需要做的是在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
    }
}

------解决方案--------------------
没太明白楼主的这两段代码:
var export_url = "?app_act=goods/goods/export_data";
window.location.href=export_url;
但是觉得这两段代码执行完以后,并不能表示“数据已经导出”,所以,实际上,你还是在数据未导出完全的时候就执行了callback。
不知道楼主的代码环境是怎么样的,您应该首先找到“数据已经导出”的点,在这之后使用回调函数。
------解决方案--------------------
我猜到了,楼主可能是有个列表,列表上方有个按钮,点击该按钮,执行导出函数从后台导出数据,然后刷新页面。楼主为什么不使用ajax丫,自带callback。