论坛首页 Web前端技术论坛

XMLHttp我的看法

浏览 14197 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2005-05-10  
goncha 写道
其实在Server->Client的时候传JavaScript也不错, 直接eval(...).


好奇怪的想法,你这样做的原因是?
0 请登录后投票
   发表时间: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>
0 请登录后投票
   发表时间: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 开发的新架构,我对于架构方面比较关注。但是架构只是一个骨架,需要靠大量灵活实用的组件来充实,最终才可能真正提高开发效率。没有这些丰富的组件,光是一个架构并没有推广的价值。
0 请登录后投票
   发表时间: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/
0 请登录后投票
   发表时间:2005-05-19  
dlee 写道

过一段时间我把围绕 XMLHTTP 的一些开源组件做一个全面的考察,给大家一个满意的答复,消除大家对于应用 XMLHTTP 的一些疑虑。XMLHTTP 只是一种具体的技术,AJAX 是一种 Web 开发的新架构,我对于架构方面比较关注。但是架构只是一个骨架,需要靠大量灵活实用的组件来充实,最终才可能真正提高开发效率。没有这些丰富的组件,光是一个架构并没有推广的价值。

很高兴看到dlee的回复,其实我们现在也是大量运用JS,特别是在页面逻辑比较负责的情况下,感觉如果在加上XMLHTTP,简直就是如虎添翼了,到时候呈现给用户的将是更人性话的界面,没有频繁的刷新,页面之间的流程也就可以通过传XML的方式来更好的呈现。我在网上找了找,可惜关于XMLHTTP的资料实在少之又少,仅有的几个还是ASP的例子。实在不能令人满意,希望DLEE能给出一点类似HOW TO的文档,这将有利用更多人更好的掌握XMLHTTP,当然,我也是其中之一。
0 请登录后投票
   发表时间: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.)的无缝整合。

如果感兴趣可以来参加我们的培训课程。不过即使将来我们开始做培训了,我仍然会经常在这里发表一些文章,贡献出我最近的心得来与大家探讨的。
0 请登录后投票
   发表时间: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.)的无缝整合。

如果感兴趣可以来参加我们的培训课程。不过即使将来我们开始做培训了,我仍然会经常在这里发表一些文章,贡献出我最近的心得来与大家探讨的。

嗯。。相当感兴趣,希望到时候能将培训的方式公布在论坛上。
0 请登录后投票
论坛首页 Web前端技术版

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