构建一个前端库-Data对象分析

AJAX作为RIA实现的一个最重要的技术,不得不拿出来分析一下。

AJAX整个过程即,发送请求,使用XMLHttpRequest对象动态获取数据。

服务端授受请求,返回数据,客户端接受数据,操作DOM元素。

 

Data对象的封装就是对以上过程进行简化。

 一个完整的Data对象封装如上。针对AJAX实现过程,我们要做以下封装内容。

1.ajax请求地址及基本参数。

一般来说,一个项目的ajax访问地址是相同的,根据action的不同,请求到不同的数据。

2.返回的数据的处理

通过访问之后的回调,将json数据格式的内容解析为多条的object内容,以方便实现mvc操作方式。

            t = eval(o.responseText);
            c.error = _getReturnError(t[0][0][0].value);

            //数据转换
            t.splice(0,1);

            for (i=0; i<t.length; i++) {
                data[i] = [];

                for (j =0; j < t[i].length; j++) {
                    data[i][j] = {};

                    for (k =0; k < t[i][j].length; k++) {
                        data[i][j][t[i][j][k].id] = t[i][j][k].value;
                    }
                }
            }

3.回调

虽然,本库实现了MVVM模式,将数据回调后的绑定数据工作已经自动完成,但一些特例例如权限控制等操作,还需要数据绑定完成回调时程序员去处理。 .

 

n.细节

由于ajax访问地址有时候会相同,所以会造成缓存的情况,数据并没有实时更新,所以必须清掉缓存,在html页面头上加以下内容,就可以实现不缓存ajax数据。

<META HTTP-EQUIV="pragma" CONTENT="no-cache"> 
<META HTTP-EQUIV="Cache-Control" CONTENT="no-cache, must-revalidate"> 
<META HTTP-EQUIV="expires" CONTENT="Wed, 26 Feb 1997 08:21:57 GMT">

 

由于此库将java的许多操作,如果路由配置,权限管理,页面跳转,增删改查的数据库操作,都封装到了Data对象上,所以下一次,会针对Data对象进行深层次解析。

 

posted @ 2012-12-19 18:33  Bug罗  阅读(751)  评论(0编辑  收藏  举报