锁定老帖子 主题:XMLHttp我的看法
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2005-05-10
goncha 写道 其实在Server->Client的时候传JavaScript也不错, 直接eval(...).
好奇怪的想法,你这样做的原因是? |
|
返回顶楼 | |
发表时间:2005-05-11
goncha 写道 其实在Server->Client的时候传JavaScript也不错, 直接eval(...).
我和这位仁兄的思路一致,先在一个jsp中写好对目标页面改变的js,然后直接eval(),省去解析xml的一大堆工作。 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML> <HEAD> <TITLE> New Document </TITLE> <META NAME="Generator" CONTENT="EditPlus"> <META NAME="Author" CONTENT=""> <META NAME="Keywords" CONTENT=""> <META NAME="Description" CONTENT=""> </HEAD> <BODY> <script language="JavaScript"> function Xttp();{ var httpRequest = new ActiveXObject("Msxml2.XMLHTTP.3.0");; var me=this; var url; this.setUrl=function(aUrl);{this.url=aUrl;} this.getUrl=function();{return this.url;} var async=false; this.setAsync=function(aBoolean);{ this.async=aBoolean; } this.callback=function(aText);{alert(aText);;alert("bbbb");;} this.setCallback=function(aCallback);{this.callback=aCallback;} this.isAsync=function();{return this.async;} this.send=function();{ httpRequest.open("post", this.url, !this.isAsync();,"","");; httpRequest.setRequestHeader("Content-type", "content=text/html;charset=UTF-8");; if (this.async); httpRequest.onreadystatechange=this.doCallback; else httpRequest.onreadystatechange=function();{}; httpRequest.send();; if (!this.isAsync();); this.doCallback();; } this.doCallback=function();{ if (httpRequest.readyState == 4);{ var tmp=httpRequest.responseText; me.callback(tmp);; } } } function viewResponse(aText);{ alert("test");; alert(aText);; } var xttp=new Xttp();; xttp.setUrl("http://localhost:8080/examples/jsp/num/numguess.jsp?count=7");; //xttp.setCallback(viewResponse);; xttp.setAsync(true);; </script> <input type="button" onclick="xttp.send();;" value="Test"> </BODY> </HTML> |
|
返回顶楼 | |
发表时间:2005-05-11
to number017:
根据我的经验,XMLHTTP 其实只是一个非常简单的接口。大多数人感到困难的不是 XMLHTTP 本身,而是需要直接处理 XML,因为 DOM/XPath 对于很多人来说还是一个相当复杂的接口(这也是 JDOM/dom4j 这类 API 产生的原因)。解决这个问题,需要靠对 XML 良好的封装,提供一个面向对象的接口便于处理,提高开发效率。 现在已经有一些封装 XMLHTTP 的开源组件,例如 femto 的 jason 开源项目中使用的 JSON-RPC(http://json-rpc.org)。femto 和 Quake Wang 是实干家,说的少,做的多。其实他们对于开源的 JS 组件的研究是很多的,但是很少说,所以大家不知道。 过一段时间我把围绕 XMLHTTP 的一些开源组件做一个全面的考察,给大家一个满意的答复,消除大家对于应用 XMLHTTP 的一些疑虑。XMLHTTP 只是一种具体的技术,AJAX 是一种 Web 开发的新架构,我对于架构方面比较关注。但是架构只是一个骨架,需要靠大量灵活实用的组件来充实,最终才可能真正提高开发效率。没有这些丰富的组件,光是一个架构并没有推广的价值。 |
|
返回顶楼 | |
发表时间:2005-05-12
我再补充一些内容。很多刚刚接触到 XMLHTTP 的人往往误以为 XMLHTTP 是 IE 独有的特性,只能在 IE 上面使用。这个问题我已经解释过很多次,似乎将来有必要出一个 FAQ。XMLHTTP 最初确实是 IE 的扩展,在 IE 5.0 版本中出现,得到了开发人员的广泛欢迎。但是现在很多年过去了,Firefox/Opera 等等其它的主流的浏览器也都已经可以很好地支持 XMLHTTP 了,而使用的接口与 IE 是保持一致的,只有最初对象创建的语法不同。现在 Apple、Mozilla、Opera 三个组织(很遗憾没有 M$ 的官方参与)联合在制定一个规范 Web Application 1.0,目前进入了 Working Draft 的状态,将来有可能会被 W3C 采用作为正式的规范,所以学习和使用 XMLHTTP 是完全不必担心将来没有前途的。
XMLHTTP 在规范中称作 XMLHttpRequest,但是我还是比较喜欢短的名字。 http://whatwg.org/specs/web-apps/current-work/ |
|
返回顶楼 | |
发表时间:2005-05-19
dlee 写道 过一段时间我把围绕 XMLHTTP 的一些开源组件做一个全面的考察,给大家一个满意的答复,消除大家对于应用 XMLHTTP 的一些疑虑。XMLHTTP 只是一种具体的技术,AJAX 是一种 Web 开发的新架构,我对于架构方面比较关注。但是架构只是一个骨架,需要靠大量灵活实用的组件来充实,最终才可能真正提高开发效率。没有这些丰富的组件,光是一个架构并没有推广的价值。 很高兴看到dlee的回复,其实我们现在也是大量运用JS,特别是在页面逻辑比较负责的情况下,感觉如果在加上XMLHTTP,简直就是如虎添翼了,到时候呈现给用户的将是更人性话的界面,没有频繁的刷新,页面之间的流程也就可以通过传XML的方式来更好的呈现。我在网上找了找,可惜关于XMLHTTP的资料实在少之又少,仅有的几个还是ASP的例子。实在不能令人满意,希望DLEE能给出一点类似HOW TO的文档,这将有利用更多人更好的掌握XMLHTTP,当然,我也是其中之一。 |
|
返回顶楼 | |
发表时间:2005-05-19
to number017:
我们 JavaEye 很快会开展一些技术培训,AJAX/XMLHTTP 也是其中重要的部分。现在正在准备教材。目前这部分包括以下的内容: 1、深入学习和掌握 XHTML/CSS/JavaScript。这里我们不会讲授基础知识,只是针对学员已经掌握的相关知识做一些深入的讲授,为后面的课程打一个基础。 2、如何基于 Web 标准来做开发。哪些是不符合标准的、需要摒弃的陈旧方法。如何避免为不同的浏览器开发不同的 XHTML/CSS/JavaScript 代码(永远不再需要浏览器探测了)。 3、如何完全使用 CSS 来做页面布局。需要理解的知识和需要注意的事项。 4、如何分离页面的 structure、presentation 和 behaviour,以实现页面开发的重用和组件化开发。 5、关于 XMLHTTP 的基础知识。 6、关于 AJAX 的基础知识。 7、常用 AJAX 组件的使用方法。这里我们将来会发展出一套 AJAX 的组件库出来,并且以 Open Source 的形式发布出来。学员可以和我们一起来发展和维护这套组件库。 8、AJAX 与后台 J2EE 架构(例如:Spring、WebWork,etc.)的无缝整合。 如果感兴趣可以来参加我们的培训课程。不过即使将来我们开始做培训了,我仍然会经常在这里发表一些文章,贡献出我最近的心得来与大家探讨的。 |
|
返回顶楼 | |
发表时间:2005-05-20
dlee 写道 to number017:
我们 JavaEye 很快会开展一些技术培训,AJAX/XMLHTTP 也是其中重要的部分。现在正在准备教材。目前这部分包括以下的内容: 1、深入学习和掌握 XHTML/CSS/JavaScript。这里我们不会讲授基础知识,只是针对学员已经掌握的相关知识做一些深入的讲授,为后面的课程打一个基础。 2、如何基于 Web 标准来做开发。哪些是不符合标准的、需要摒弃的陈旧方法。如何避免为不同的浏览器开发不同的 XHTML/CSS/JavaScript 代码(永远不再需要浏览器探测了)。 3、如何完全使用 CSS 来做页面布局。需要理解的知识和需要注意的事项。 4、如何分离页面的 structure、presentation 和 behaviour,以实现页面开发的重用和组件化开发。 5、关于 XMLHTTP 的基础知识。 6、关于 AJAX 的基础知识。 7、常用 AJAX 组件的使用方法。这里我们将来会发展出一套 AJAX 的组件库出来,并且以 Open Source 的形式发布出来。学员可以和我们一起来发展和维护这套组件库。 8、AJAX 与后台 J2EE 架构(例如:Spring、WebWork,etc.)的无缝整合。 如果感兴趣可以来参加我们的培训课程。不过即使将来我们开始做培训了,我仍然会经常在这里发表一些文章,贡献出我最近的心得来与大家探讨的。 嗯。。相当感兴趣,希望到时候能将培训的方式公布在论坛上。 |
|
返回顶楼 | |