Ajax的一点理解
来源:互联网 发布:张健 网络空间 编辑:程序博客网 时间:2024/05/14 01:31
首先来个简单的示例,从W3school上看到的。
<html>
<body>
<script type="text/javascript">
function ajaxFunction()
{
var xmlHttp
;
try
{
// Firefox, Opera 8.0+, Safari
xmlHttp=new XMLHttpRequest();
}
catch (e)
{
// Internet Explorer
try
{
xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e)
{
try
{
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
}
catch (e)
{
alert("您的浏览器不支持AJAX!");
return false;
}
}
}
xmlHttp.onreadystatechange
=function()
{
if(xmlHttp.readyState
==4)
{
document.myForm.time.value=xmlHttp.responseText
;
}
}
xmlHttp.open("GET","/TestServlet?name=Jordan&id=123456",true)
;
xmlHttp.send(null)
;
}
</script>
<form name="myForm">
用户: <input type="text" name="username" onkeyup="ajaxFunction();"
/>
时间: <input type="text" name="time" />
</form>
</body>
</html>
这个页面是简单的Ajax访问后台服务,
先构造跨浏览器的xmlHttp对象,然后通过xmlHttp.open("GET","/TestServlet?name=Jordan&id=123456",true)
;方式将数据传递到后台。类似表单提交,只不过需自己添加数据到url中,以?的方式。
后台可以通过reques.getParameter("name")的方式获取传递过来的参数,处理,然后将结果返回。
客户端通过xmlHttp.onreadystatechange的状态判断处理的状态,然后做相应的动作。
详情参考:http://www.w3school.com.cn
这是最简单的方式,但是当前台需要传递的数据量特别大的时候,用url加问号的方式(/TestServlet?para=¶1=¶2=...)传递数据就显得比较困难了,因为毕竟url的长度是有限制的。而且还有可能出现中文乱码等问题。
个人认为解决方法:
1、先将大量待传输的数据构造成xml的格式
2、xmlHttp.send(xml)的方式发送到后台、其中发送方式改为Post。(xmlHttp.
open("POST","",""
))
3、后台通过BufferedReader br=request.getReader(); 的方式获取流
4、构建专门的处理方法,用于解析xml。提取所需数据。
5、处理返回。
- Ajax的一点理解
- 对AJAX的一点理解
- 我对AJAX的一点浅薄理解
- js之ajax的一点理解
- Ajax的一点用法
- Cygwin的一点理解
- UIWebView 的一点理解
- MEF的一点理解
- QThread的一点理解
- ioctl的一点理解
- 容器的一点理解
- PCA的一点理解
- Services的一点理解
- service_name的一点理解
- NSRunLoop的一点理解
- AIDL的一点理解
- AIDL的一点理解
- static的一点理解
- 一次“半面试”——汉得
- 07年12月30日------温哥华国际机场
- 游戏数统计的几个点
- About Bind in Prototype JavaScript Language.
- No daylight saving time now(遇到奇怪的夏令时)
- Ajax的一点理解
- Linux删除乱码文件
- 11月14,今天第一次打squash
- 23 Nov.2007 今天去参加一个讲座(HB studio)--还有颈椎炎
- 含位域结构体的sizeof
- 今天去shopping了
- halifax华人协会圣诞party
- 在网页中控制wmplayer播放器
- 实习报告