首先,想一下,我们用传统的BS结构下,怎样更新客户端的数据?
常规的,设置一个Form,用POST或GET的方法(也可以用“网址?参数=xxx”等方法)提交到服务器,服务器端处理后,再将结果传到客户端浏览器。
问题就在于,客户端的动作无法实时地跟服务器保持同步,客户端和服务器端只能采用“提交”的方式来保持互动。举例而言,现在我们做了一个客户端页面,有一个下拉菜单,客户从这个下拉菜单中选取了一个值,客户端在完成了这个动作之后,事实上服务器端是毫不知觉的,我们要么做一个按钮来“提交”这个值,要么提交动作放在下拉菜单的事件中,总之,提交这个过程不可缺少。并且,每一次“提交”都需要更新全部数据,这实在是很“蠢”效率很低下。
利用一个很简单的Ajax示例,就可以很容易地实现无刷新更新数据。
首先是客户端:
script language="javascript"
!--
function submitme()
{
var httpResponse = new ActiveXObject("Microsoft.XMLHTTP")
httpResponse.open("GET","myfile.xml",true) //异步提交myfile.xml文件,页面本身并不刷新
httpResponse.send(null) //发送提交申请
var response = httpResponse.responseXML.documentElement //提取模式为读取XML节点方式
var test = response.getElementsByTagName("email").firstChild.data//返回Email节点的数据
alert (test) //显示test数据(email)
--
/script
------------------------
myfile.xml文件:
?xml version="1.0" encoding="GB2312"?
myfile
websitewww.stoneren.com/website
emailrockages@gmail.com/email
date20061010/date
/myfile
-------------------------
这只是一个简单的例子,XML文件是现成的,真实的应用下,我们可以动态生成这个文件,简单地,利用ASP的Response.Write就能做到。
试一下,完全没有刷新页面,但是服务器端的值却实实在在地传递了过来!!很奇妙的感觉哦~~
em6:em6: