论坛首页 Web前端技术论坛

AJAX问题一问

浏览 2923 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2006-12-16  
如果在后台有request.setAttribute( "list", list );
那么AJAX在成功代码200里面,如何取得这个list对象?
   发表时间:2006-12-16  
象这样的list我会这样做:
方法一、如果list的对象最终是在页面中变成table那么我会把它们用html的方式组合起来,然后用responseText来接收,对他进行解析。
方法二、如果list是某个下拉框或javascript的变量值,那么我会把list用xml来实现,然后用responseXML来接收,对他进行解析。
0 请登录后投票
   发表时间:2006-12-16  
按我的理解楼主是在讨论callback方式如何传递object,二楼的我没看明白。
我自己的做法是一般传递一个完整的callback函数和参数字符串给xmlhttp的onready事件,其中需要替换为responseXML或者responseText的会先用_XML_、_TEXT_这样的占位符,执行onready事件时先把"_XML_"用js的regexp.replace替换成"xmlhttp.responseXML",再eval(callback)

比如:
function xmlhttp_request( url, onready ) {
 var xhr = new XMLHttpRequest();;
 ...
 onready.replace( /_XML_/ig, "xhr.responseXML" )
 eval( onready );
}

function my_parser( XML ) {
 ...
 return obj;
}

function my_renderer( obj ) {
 alert( obj.attr );
}

xmlhttp_request( "http://xxx", "my_renderer(my_parser(_XML_))" );


这样可以通过一系列parser函数和renderer函数来重用底层的xmlhttp_request代码了。
0 请登录后投票
   发表时间:2006-12-16  
首先,你得把这个list变成一个字符串吧:http协议传输的就是字符串,另外,js也只能处理字符串。

转换成字符串有两种方式:json或者xml。用json会比较简单,list大概能变成这样的字符串:[{id:1,name:"xxx",age:12},{id:2,name:"",age:20},...],然后到了客户端之后,只需eval("obj="+str)就能得到一个js对象数组,str就是上面这个字符串。把java对象变成字符串已经有很多框架了,不需要自己写,你可以试试看这个:http://www.iteye.com/topic/32542
0 请登录后投票
   发表时间:2006-12-18  
hexiaodong 写道
首先,你得把这个list变成一个字符串吧:http协议传输的就是字符串,另外,js也只能处理字符串。

转换成字符串有两种方式:json或者xml。用json会比较简单,list大概能变成这样的字符串:[{id:1,name:"xxx",age:12},{id:2,name:"",age:20},...],然后到了客户端之后,只需eval("obj="+str)就能得到一个js对象数组,str就是上面这个字符串。把java对象变成字符串已经有很多框架了,不需要自己写,你可以试试看这个:http://www.iteye.com/topic/32542


同意
很多ajax框架都有java对象到js对象(字符串)转化的帮助类,都很精巧的,很好用
0 请登录后投票
   发表时间:2006-12-18  
这个用DWR太太太方便了...
0 请登录后投票
论坛首页 Web前端技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics