构建一个前端库-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对象进行深层次解析。