`

Ajax 异步传输应用

阅读更多

  最近在工作中接触了异步传输,现在总结一下。

之前用的比较多的,也是比较普遍的是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异步传输数据(1)——页面格式** Ajax(Asynchronous JavaScript and ...总之,Ajax异步传输数据是现代Web开发中的关键技术,通过理解并熟练运用这些知识点,开发者可以构建更高效、交互性更强的网页应用程序。

    ajax 异步传输php代码

    &lt;title&gt;Ajax异步传输示例 &lt;script src="ajaxcls.js"&gt;&lt;/script&gt; ()"&gt;加载数据 &lt;div id="dataContainer"&gt;&lt;/div&gt; function loadData() { var ajax = new Ajax(); ajax.get('server.php', function...

    AJAX反编译(异步传输大集合)

    以上就是AJAX异步传输的关键知识点,通过对这些概念的理解和实践,开发者可以更好地利用AJAX实现网页的无刷新更新,提高用户交互体验。通过提供的"ajax反编译"文件,你可以深入理解AJAX的内部实现,进一步提升你的...

    jQuery的Ajax实现异步传输List、Map

    在本篇文章中,我们将探讨如何利用jQuery的Ajax功能实现异步传输List和Map数据结构,这对于构建动态Web应用程序至关重要。通过Ajax(Asynchronous JavaScript and XML)技术,我们可以实现在不刷新整个页面的情况下...

    AJAX异步处理原理分析

    **AJAX异步处理原理分析** AJAX,全称Asynchronous JavaScript and XML(异步JavaScript和XML),是一种在不刷新整个网页的情况下,能够更新部分网页的技术。它通过在后台与服务器进行少量数据交换,使网页实现局部...

    ajax异步提交源代码

    通过上述两个示例,我们了解了如何实现Ajax异步提交以及如何处理返回的结果,这为开发高效、交互性强的Web应用提供了基础。在实际项目中,开发者可以根据需求选择合适的工具和方法来实现Ajax功能。

    Ajax异步无刷新验证码

    Ajax异步无刷新验证码是一种常见的Web安全验证技术,它结合了Ajax(Asynchronous JavaScript and XML)与验证码(CAPTCHA)的特性,为用户提供更流畅、更友好的网页交互体验。在传统的网页验证过程中,用户每次提交...

    ajax异步上传文件实现

    首先,让我们理解什么是Ajax异步文件上传。传统的文件上传通常需要用户填写表单,然后点击提交按钮,整个页面会刷新以显示上传结果。然而,使用Ajax,我们可以创建一个无刷新的上传过程,用户选择文件后,文件会在...

    AJAX异步调用代码

    综上所述,这段AJAX异步调用代码示例不仅展示了前后台数据同步的基本流程,还涉及了DOM操作、错误处理等多个重要知识点,对于理解和应用AJAX技术具有较高的参考价值。在日常开发中,灵活运用这些知识,可以有效提升...

    AJAX异步数据通讯机制在Web程序中的应用.pdf

    "AJAX异步数据通讯机制在Web程序中的应用" AJAX异步数据通讯机制是基于Web程序开发的新方法,它提供了一种异步数据传输机制,解决了传统的Web架构中的问题。AJAX技术包括多项现有技术,包括标准的Web展现技术、文档...

    Ajax 跨域异步传输

    总的来说,Ajax跨域异步传输是现代Web开发中的重要技术,JSONP提供了一种简单的方法来解决跨域问题,但仅限于GET请求。对于更复杂的跨域需求,开发者应当考虑使用CORS,它提供了更广泛的支持,包括POST和其他HTTP...

    ajax异步提交获取信息示例

    **Ajax异步提交获取信息详解** 在Web开发中,AJAX(Asynchronous JavaScript and XML)是一种创建动态网页的技术,允许在不重新加载整个页面的情况下,与服务器交换数据并更新部分网页内容。本示例主要讲解如何利用...

    AJAX异步通信技术学习笔记

    ### AJAX异步通信技术详解 #### 一、引言 AJAX(Asynchronous JavaScript and XML)是一种使用JavaScript和XML在浏览器与服务器之间进行数据传输的技术。通过这种技术,可以实现网页部分更新,而无需重新加载整个...

    ajax异步上传

    传统的文件上传通常伴随整个页面的刷新,而Ajax异步上传则是通过创建XMLHttpRequest对象(在现代浏览器中,通常是使用fetch API或jQuery的$.ajax方法)来与服务器进行通信,实现后台数据的传输,同时保持前端界面的...

    ajax 异步流代理类

    在Ajax异步流代理类中,流技术用于处理大数据量的传输,它可以分块地读取和写入数据,降低了内存占用,并允许逐步处理数据,这对于大文件下载或接收大量数据的场景非常有利。 代理类(Proxy Class)是一种设计模式...

    AJAX ,异步传输,显示

    1. 异步:AJAX的核心特性就是异步,意味着在不阻塞用户界面的情况下,后台可以进行数据交换。用户可以继续浏览或操作,而数据请求和处理在后台默默地进行。 2. JavaScript:AJAX是基于JavaScript实现的,主要通过...

    AjAX异步页面处理技术

    **Ajax(Asynchronous JavaScript and XML)异步JavaScript与XML技术是Web开发领域中的一项核心技术,它使得网页可以实现部分刷新,无需重新加载整个页面就能获取并更新数据。这种技术极大地提升了用户体验,尤其在...

    Ajax异步传输与PHP实现交互示例

    在本文中,我们将深入探讨如何使用Ajax异步传输与PHP实现前后端的交互,特别是针对一个常见的二级联动效果,即当用户在前端选择学院时,动态加载并显示相关的专业信息。这种交互方式能够显著提升用户体验,因为它...

Global site tag (gtag.js) - Google Analytics