最近在工作中接触了异步传输,现在总结一下。
之前用的比较多的,也是比较普遍的是js最基本的调用
//删除左右两端的空格
function trim(str) {
return str.replace(/(^\s*)|(\s*$)/g, "");
}
function verify() {
var userName = document.getElementById("userName").value;
if (window.XMLHttpRequest) {
xmlhttp = new XMLHttpRequest();
//针对某些特定版本的mozillar浏览器的BUG进行修正
if (xmlhttp.overrideMimeType) {
xmlhttp.overrideMimeType("text/xml");
}
} else if (window.ActiveXObject) {
var activexName = ["MSXML2.XMLHTTP","Microsoft.XMLHTTP"];
for (var i = 0; i < activexName.length; i++) {
try{
xmlhttp = new ActiveXObject(activexName[i]);
break;
} catch(e){
}
}
}
if (!xmlhttp) {
alert("XMLHttpRequest对象创建失败!!");
return;
}
xmlhttp.onreadystatechange = callback;
var url = "{调用地址}?userName="+ userName;
//POST方式请求的代码
xmlhttp.open("POST",url,true);
xmlhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
xmlhttp.send(null);
}
//回调函数
function callback() {
//6.接收响应数据
//判断对象的状态是交互完成
if (xmlhttp.readyState == 4) {
//判断http的交互是否成功
if (xmlhttp.status == 200) {
//获取服务漆器端返回的数据
//获取服务器段输出的纯文本数据
var responseText = trim(xmlhttp.responseText);
if(responseText=="0"){
alert("用户名不能为空!");
}else if(responseText=="1"){
alert("用户名已经存在!");
}else{
alert("用户名不存在,可以注册");
}
} else {
alert("error!"+xmlhttp.status);
}
}
}
然后在含有被调用的方法的.java文件中,加入
public void checkUserName(HttpServletRequest request,
HttpServletResponse response){
try {
// 设置响应文件格式,这是为text/html
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
// 1.取参数
String userName= request.getParameter("userName");
// 2.检查参数是否有问题
if (userName== null || userName.length() == 0) {
out.println("0");
} else if({用username查询数据库是否存在,如存在}){
out.println("1");
} else {
out.println("-1");
}
} catch (Exception e) {
e.printStackTrace();
}
}
这样,就能实现异步数据的查询!
但是.java仅仅这样的话,并不能满足异步调用更多的数据,或是会很麻烦。
因为上面的.java文件最后返回的是一个test/html的文件,也就是一个页面。咱们可以将其改为跳转到一个jsp页面,并且为其传递参数。下面是springMVC框架的.java文件
public String checkUserName(,HttpServletRequest request,
HttpServletResponse response, Model model){
String userName= request.getParameter("userName"); // 1.取参数
boolean exist = {查询数据库中userName是否存在};
model.addAttribute("exist",exist);
//还可以传递其他参数
return "regist/index"//此处为传递的text/html格式页面,在xmlhttp.responseText处将会被读取
}
然后编写一个"regist/index"的.jsp页面就可以了。
直接写上面的js就可以完成工作,但这样写代码量会很多,还有一些封装好的Ajax,用起来也是比较方便的,比如yahoo.js.
.java 文件可以不变,直接修改js即可。如下:
function verify(){
var userName = document.getElementById("userName").value;
function handleSuccess(o){
var userName= trim(o.responseText);
document.write(userName);
}
function handleFailure(){
alert("系统错误,请稍后再试!");
return;
}
var getNameCallback = {
success: handleSuccess,
failure: handleFailure,
cache:false
};
var url = "{调用地址}";
var userName= "userName="+userName;
var request = YAHOO.util.Connect.asyncRequest('POST', url, getNameCallback , postData);
}
分享到:
相关推荐
**Ajax异步传输数据(1)——页面格式** Ajax(Asynchronous JavaScript and ...总之,Ajax异步传输数据是现代Web开发中的关键技术,通过理解并熟练运用这些知识点,开发者可以构建更高效、交互性更强的网页应用程序。
<title>Ajax异步传输示例 <script src="ajaxcls.js"></script> ()">加载数据 <div id="dataContainer"></div> function loadData() { var ajax = new Ajax(); ajax.get('server.php', function...
以上就是AJAX异步传输的关键知识点,通过对这些概念的理解和实践,开发者可以更好地利用AJAX实现网页的无刷新更新,提高用户交互体验。通过提供的"ajax反编译"文件,你可以深入理解AJAX的内部实现,进一步提升你的...
在本篇文章中,我们将探讨如何利用jQuery的Ajax功能实现异步传输List和Map数据结构,这对于构建动态Web应用程序至关重要。通过Ajax(Asynchronous JavaScript and XML)技术,我们可以实现在不刷新整个页面的情况下...
**AJAX异步处理原理分析** AJAX,全称Asynchronous JavaScript and XML(异步JavaScript和XML),是一种在不刷新整个网页的情况下,能够更新部分网页的技术。它通过在后台与服务器进行少量数据交换,使网页实现局部...
通过上述两个示例,我们了解了如何实现Ajax异步提交以及如何处理返回的结果,这为开发高效、交互性强的Web应用提供了基础。在实际项目中,开发者可以根据需求选择合适的工具和方法来实现Ajax功能。
Ajax异步无刷新验证码是一种常见的Web安全验证技术,它结合了Ajax(Asynchronous JavaScript and XML)与验证码(CAPTCHA)的特性,为用户提供更流畅、更友好的网页交互体验。在传统的网页验证过程中,用户每次提交...
首先,让我们理解什么是Ajax异步文件上传。传统的文件上传通常需要用户填写表单,然后点击提交按钮,整个页面会刷新以显示上传结果。然而,使用Ajax,我们可以创建一个无刷新的上传过程,用户选择文件后,文件会在...
综上所述,这段AJAX异步调用代码示例不仅展示了前后台数据同步的基本流程,还涉及了DOM操作、错误处理等多个重要知识点,对于理解和应用AJAX技术具有较高的参考价值。在日常开发中,灵活运用这些知识,可以有效提升...
"AJAX异步数据通讯机制在Web程序中的应用" AJAX异步数据通讯机制是基于Web程序开发的新方法,它提供了一种异步数据传输机制,解决了传统的Web架构中的问题。AJAX技术包括多项现有技术,包括标准的Web展现技术、文档...
总的来说,Ajax跨域异步传输是现代Web开发中的重要技术,JSONP提供了一种简单的方法来解决跨域问题,但仅限于GET请求。对于更复杂的跨域需求,开发者应当考虑使用CORS,它提供了更广泛的支持,包括POST和其他HTTP...
**Ajax异步提交获取信息详解** 在Web开发中,AJAX(Asynchronous JavaScript and XML)是一种创建动态网页的技术,允许在不重新加载整个页面的情况下,与服务器交换数据并更新部分网页内容。本示例主要讲解如何利用...
### AJAX异步通信技术详解 #### 一、引言 AJAX(Asynchronous JavaScript and XML)是一种使用JavaScript和XML在浏览器与服务器之间进行数据传输的技术。通过这种技术,可以实现网页部分更新,而无需重新加载整个...
传统的文件上传通常伴随整个页面的刷新,而Ajax异步上传则是通过创建XMLHttpRequest对象(在现代浏览器中,通常是使用fetch API或jQuery的$.ajax方法)来与服务器进行通信,实现后台数据的传输,同时保持前端界面的...
在Ajax异步流代理类中,流技术用于处理大数据量的传输,它可以分块地读取和写入数据,降低了内存占用,并允许逐步处理数据,这对于大文件下载或接收大量数据的场景非常有利。 代理类(Proxy Class)是一种设计模式...
1. 异步:AJAX的核心特性就是异步,意味着在不阻塞用户界面的情况下,后台可以进行数据交换。用户可以继续浏览或操作,而数据请求和处理在后台默默地进行。 2. JavaScript:AJAX是基于JavaScript实现的,主要通过...
**Ajax(Asynchronous JavaScript and XML)异步JavaScript与XML技术是Web开发领域中的一项核心技术,它使得网页可以实现部分刷新,无需重新加载整个页面就能获取并更新数据。这种技术极大地提升了用户体验,尤其在...
在本文中,我们将深入探讨如何使用Ajax异步传输与PHP实现前后端的交互,特别是针对一个常见的二级联动效果,即当用户在前端选择学院时,动态加载并显示相关的专业信息。这种交互方式能够显著提升用户体验,因为它...