解析Ajax响应结果的两种简单方法.
2007-12-01 10:50
387 查看
用过Ajax方面技术的都知道,部分的框架都会要求在客户端有个响应的function或者客户端的回调,这个方法在整个异步操作中就是用来解析服务器的响应.通常服务器给客户端的response以字符串格式传递,比如json或xml,而比较灵活的xml是最常见的.这也是因为在服务器端将结果转换成xml比较方便.那么解析这些xml成我们自己要的界面元素,就是必不可少.而这中解析,常见的就是用DOM对象,通过xpath,然后加个循环,最后拼凑出一个table或者select.这个过程是比较麻烦.像Ajax.net框架就做得比较智能,能像服务器那样调用对象,但是要形成一个table表格还是要一个个获取,应为客户端没有像dDatagrid那样可以方便的绑定数据源.这里介绍2种解析的方法,基本上就是自动展现.也许有人已经猜到,还是看看代码吧.
1.用服务器控件的RenderControl方法输出html,服务器控件最终在生成的还是html代码,利用这个把datagrid转换成table那就很简单了.而RenderControl方法就是把控件转成html的字符串.
[AjaxMethod()]
2 public string GetSuppliers()
3function TransXml(xmlSource, xsltSource)
2function TransXml(xmlSource, xsltSource)
2 {
3 try
4 {
5 var docXslt = document.implementation.createDocument("", "", null);
6
7 var oParser = new DOMParser();
8 doc = oParser.parseFromString(xmlSource, "text/xml");
9 doc.async = false;
10
11 docXslt.async = false;
12 docXslt.load(xsltSource);
13
14 var oProcessor = new XSLTProcessor();
15 oProcessor.importStylesheet(docXslt);
16
17 oProcessor.setParameter(null, "currentTime", new Date().toLocaleString());
18 sResult = oProcessor.transformToDocument(doc);
19
20 var sXml = new XMLSerializer().serializeToString(sResult, "text/xml");
21 document.getElementById("divResult").innerHTML = sXml;
22 }
23 catch (e)
24 {
25 alert(e.message);
26 }
27
28 }
1.用服务器控件的RenderControl方法输出html,服务器控件最终在生成的还是html代码,利用这个把datagrid转换成table那就很简单了.而RenderControl方法就是把控件转成html的字符串.
[AjaxMethod()]
2 public string GetSuppliers()
3function TransXml(xmlSource, xsltSource)
2function TransXml(xmlSource, xsltSource)
2 {
3 try
4 {
5 var docXslt = document.implementation.createDocument("", "", null);
6
7 var oParser = new DOMParser();
8 doc = oParser.parseFromString(xmlSource, "text/xml");
9 doc.async = false;
10
11 docXslt.async = false;
12 docXslt.load(xsltSource);
13
14 var oProcessor = new XSLTProcessor();
15 oProcessor.importStylesheet(docXslt);
16
17 oProcessor.setParameter(null, "currentTime", new Date().toLocaleString());
18 sResult = oProcessor.transformToDocument(doc);
19
20 var sXml = new XMLSerializer().serializeToString(sResult, "text/xml");
21 document.getElementById("divResult").innerHTML = sXml;
22 }
23 catch (e)
24 {
25 alert(e.message);
26 }
27
28 }
相关文章推荐
- 解析ajax响应结果的两种简单方法
- 解析Ajax响应结果的两种简单方法.
- JdbcTemplate查询数据中两种处理结果集方法的简单比较
- php简单解析mysqli查询结果的方法(2种方法)
- 【前端学习笔记】2015-09-02 附~~~~~ajax简单请求和获得响应结果
- Ajax中解析Json的两种方法对比分析
- Ajax中解析Json的两种方法详解
- ajax解析json的两种方法
- Ajax中解析Json的两种方法详解
- ajax的简单使用——get&post两种方法的实现(1)
- php简单解析mysqli查询结果的方法(2种方法)
- Ajax中解析Json的两种方法详解
- Ajax在解析Json的两种方法详解,eval()与 JSON.parse()
- Ajax中解析Json的两种方法详解
- Ajax中解析Json的两种方法详解
- Ajax中解析Json的两种方法对比分析
- ssh实现ajax最简单的方法
- 在js 中使用ajax 调用后台代码方法,解析返回值
- Rails中使用ajax的两种方法及调试技巧
- 无需繁琐的解析XML,cocos2d-x 3.x中最简单方便粗暴有效的数据方法-plist