锁定老帖子 主题:AJAX三言两语
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2005-06-27
这项技术非常适合用来开发以浏览器为客户端的系统的界面,使用ajax给用户带来的更好的体验,他们不会感觉到用浏览器开发的客户端与桌面程序有什么差别。 ajax使用了比较多的javacript,并需要访问很多dom对象,这常常给跨浏览器访问带来困扰。但假如你小心应对,还是容易解决这个问题的。比如,你想从服务器段获得一些数据,你必然要用到xmlhttp,为了让程序浏览器无关,你可以这样创建xmlhttp对象: //for IE var xmlhttp=false; try { xmlhttp = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try { xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); } catch (E) { xmlhttp = false; } } //for firefox if (!xmlhttp && typeof XMLHttpRequest!='undefined') { xmlhttp = new XMLHttpRequest(); } 在很多的ajax范例中,开发者都是用xmlhttp从服务器端获得一个xml数据,然后转换成javascript可触及的对象,再用js绘制到document中。但我觉得这并非唯一选项,我甚至觉得是多此一举!为什么不直接传递js对象呢?在我开发的系统中,xmlhttp从服务器上获得的是代表js对象的字符串。假如我要传送一个人员列表,我会在服务器上输出: [{id:1,name:"hexiaodong"},{id:2,name:"mary"},{id:3,name:"name"},...]} 然后在浏览器上用js获得这个字符串所代表的对象: var returned = xmlhttp.responseText; var obj = eval(returned ); 接着,你就可以这样访问: var person1 = obj[0]; var person2 = obj[1]; alert(person1.id); alert(person1.name); 我觉得这样做比传递xml文档直接一些,不必通过转换可以让js直接访问数据,而且是通过对象导航来访问的,爽一个字。 ajax最后一环,就是通过dom对象绘制界面,这方面我也不是很精通,每次对着msdn画瓢呗。 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2005-06-27
我对AJAX不了解,呵呵
不过对你的论点有点疑问 假设,用户觉得客户端用网页不爽,想换成Applet或Flash之类的咋办呢? |
|
返回顶楼 | |
发表时间:2005-06-27
Bill Gates 写道 我对AJAX不了解,呵呵
不过对你的论点有点疑问 假设,用户觉得客户端用网页不爽,想换成Applet或Flash之类的咋办呢? 好问题! 假如用Applet的话,接收jsObject是没有问题的。mozilla提供了java版的js引擎,还提供了c++版的js引擎。你可以搜索一下rhino项目,使用java语言的客户端完全可以用这个引擎来解析jsObject,从而访问其中包含的各种对象。我不大清楚Flash是否能够使用这个引擎,但是感觉flash应该和js有很强交互能力的,它应该已经内建了js引擎的。不过,我没有尝试过这种用法。 |
|
返回顶楼 | |
发表时间:2005-06-27
用xml而不用字符串,我想是有这些理由:
中文字符问题; xml更容易作为标准,可以携带元数据; 既然是ajaX,自然就是要用xml。 |
|
返回顶楼 | |
发表时间:2005-06-27
Bill Gates 写道 我对AJAX不了解,呵呵
不过对你的论点有点疑问 假设,用户觉得客户端用网页不爽,想换成Applet或Flash之类的咋办呢? http://forum.iteye.com/viewtopic.php?t=13995 这方面我的思路是根据客户端的请求,服务器端动态判断,自动切换成客户端需要的格式,如xml,js,perl,php,beanshell等。 需求一直会变化、所以从来就没有one fit all 的解决方案,让客户端跟着变,还是让服务器端跟着变,就看我们怎么选择了。 |
|
返回顶楼 | |
发表时间:2005-06-27
alexwei 写道 用xml而不用字符串,我想是有这些理由:
中文字符问题; xml更容易作为标准,可以携带元数据; 既然是ajaX,自然就是要用xml。 xml也是字符串,而且还必须在这种字符串里面再指定一次编码类型。如果存在中文问题,那么在xml中,只会更复杂,而不是相反。 另外,我觉得简单直接的显得更加自然。 |
|
返回顶楼 | |
发表时间:2005-06-29
JSON是JavaScript语言标准的一部分,直接用它来传递数据我认为是一个很好的
方案, JSON-RPC-Java - http://oss.metaparadigm.com/jsonrpc/ SWATO - https://swato.dev.java.net/ 都是利用这个来作为传输手段的。 |
|
返回顶楼 | |
发表时间:2005-07-12
那么把大量数据传到服务器用什么呢,难道还是用url。我觉得ajax正如斑竹说得他远不止xmlhttp,比如要是rmi这样的实现,估计还是要用xml的。
不过楼主的想法很不错,我就没有想到,在一些简单应用中确实很好 |
|
返回顶楼 | |
发表时间:2005-07-12
顺便建议楼主能够好好理解一下xml,楼主肯定没有xml方面的应用经验,xml是改变思想的一样技术,而不同于一般的语言或技术。个人的一点忠告,没有其他意思。
|
|
返回顶楼 | |
发表时间:2005-07-21
ops2000 写道 顺便建议楼主能够好好理解一下xml,楼主肯定没有xml方面的应用经验,xml是改变思想的一样技术,而不同于一般的语言或技术。个人的一点忠告,没有其他意思。
我在2001年的时候就用xml了,你的肯定太武断了吧。xml不是银弹啊,好用就用,不好用就不用。很多场合xml能实现,其他技术也能实现,这种情况下,希望你多一些理智的分析,而不是起哄。 |
|
返回顶楼 | |