一个简单的load动作,如果简单用任何一个js框架实现

startloding();
new ajax({
    url : 'test.php',
    compete : function()
    {
         stoploading()
    },
    success : function(data)
    {
        try
        {
            var obj = json_decode(data);
        }
        catch(e)
        {
            //服务异常,未返回json造成异常
            error('服务器异常');
            return;
        }
 
        //正常的业务逻辑错误
        if ( json['code'] !== 0 )
        {
            error(json['desc']);
            return;
        }
 
        ...
    },
    error : function()
    {
        //网络请求失败造成异常
        error('网络异常');
    }
});
Copy Code 

而一个业务框架对ajax再次包装,成为一个action

new action({
    action : 'load',
    action_name : '加载',
    url : 'test.php'
});
 
api.add_action('load_start', startloading);
api.add_action('load_complete', stoploading);
//这里的成功不是ajax成功,而是判定json['code']之后action真正的成功,这就要求所有action需要有统一的成功判定标准,和json包装格式
api.add_action('load_success', function(msg, data){  .... });
//这里没有添加异常处理,因为没有特殊需要,所以action会执行默认的错误处理,可能是一个弹窗
Copy Code 

不仅仅是节省了代码,后者有更好的可读性,load动作本身也具有了更好的重用性

具体的框架代码已经在用,还不是很完美,待贴~