>  기사  >  웹 프론트엔드  >  jQuery Ajax는 새로 고침이 필요 없는 Operation_jquery를 구현합니다.

jQuery Ajax는 새로 고침이 필요 없는 Operation_jquery를 구현합니다.

WBOY
WBOY원래의
2016-05-16 15:21:531186검색

jQuery를 사용하여 Ajax 작업 구현
새로고침 효과 없이 Ajax 페이지를 구현하고 싶은데, Ajax 코드를 직접 사용하기는 좀 번거로워서 jQuery를 사용해서 구현하고 싶습니다. jQuery는 Ajax의 핵심 객체인 XMLHTTPRequest를 훌륭하게 캡슐화합니다. 그래서 사용하기가 매우 편리합니다.
                                  먼저 서버측 코드를 생성합니다. 여기서는 서버측 데이터 처리를 구현하기 위해 Servlet을 사용합니다.

protected void doPost(HttpServletRequest req, HttpServletResponse resp)
  throws ServletException, IOException {
 // 设置编码格式
  resp.setContentType("text/html;charset=UTF-8");
 // 创建输出对象
 PrintWriter out = resp.getWriter();
 
 // 得到请求参数
 String name = req.getParameter("uname");
 // 判断
 if (name == null || name.length() == 0)
 {
  out.println("用户名不能为空!");
 }
 else
 {
  // 判断
  if (name.equals("cheng"))
  {
  out.println("用户名["+ name +"]已存在!请使用其他用户名!");
  }
  else
  {
  out.println("用户名[" + name + "]尚未存在!您可以注册!");
  }
 }
}
 

그런 다음 JSP 페이지를 생성하려면 다음과 같이 Javascript 파일인 jQuery 라이브러리를 페이지에 도입해야 합니다.

<!-- 引入Javascript文件 -->
 <script type="text/javascript" src="js/jquery-1.2.6.js"></script>
<script type="text/javascript" src="js/verify.js"></script>

JSP 페이지에는 텍스트 상자, 일반 버튼 및 빈 DIV 레이어만 필요합니다. DIV는 서버에서 반환된 처리 결과를 표시하는 데 사용되며 버튼의 클릭 이벤트는 verify() 메서드를 트리거합니다. 다음과 같습니다:

 <body>
 <center>
  用户名:<input type="text" id="uname" name="uname" />
 <br />
 <input type="button" name="btnVerify" value="验证" onclick="verify()" />
 <br />
 <div id="result">
 
 </div>
 </center>
 </body>

참고: Ajax 모드에서는 데이터를 제출하기 위해 양식을 사용할 필요가 없으므로 페이지에 ff9c23ada1bcecdd1a0fb5d5a0f18437 태그를 작성할 필요가 없습니다.
다음으로 Ajax의 새로 고침이 아닌 효과를 얻기 위해 verify.js 파일을 만들고 파일에 verify() 메서드를 만듭니다. 이것이 이 예제에서 가장 중요한 단계입니다. jQuery를 사용하여 Ajax를 구현하려면 다음 네 단계를 따르세요.

  • · 텍스트 상자의 내용을 가져옵니다.
  • · 텍스트 상자의 내용을 서버 측 서블릿으로 보냅니다.
  • · 서버에서 반환된 데이터를 받습니다.
  • · 서버에서 반환한 데이터를 JSP 페이지에 동적으로 표시합니다.

첫 번째 단계로 먼저 jQuery를 통해 객체를 획득하고 다음과 같이 객체의 값을 획득합니다.

 // 取得文本框对象,通过$()获取的所有对象都是jQuery对象
 var jQueryObject = $("#uname");
 // 获取文本框中的值
 var userName = jQueryObject.val();

jQuery의 $() 함수를 통해 페이지의 노드를 가져오는데, 이는 jQuery 객체를 가져오고, jQuery의 val() 메서드를 통해 텍스트 상자의 내용인 노드의 값을 가져옵니다.
두 번째 단계에서는 다음과 같이 jQuery의 get() 메서드를 사용하여 서버에 데이터를 보냅니다.
$.get("TestServlet?uname=" userName,null,callback);
이 메소드는 세 가지 매개변수를 제공합니다. 첫 번째 매개변수는 요청의 서버측 URL입니다. 일반적으로 이 매개변수는 직접 포함될 수 있습니다. 첫 번째 URL 매개변수이므로 일반적으로 이 매개변수는 서버가 데이터를 성공적으로 처리한 후의 콜백 함수입니다.
세 번째 단계 에서는 서버에서 반환된 데이터를 처리하는 콜백 함수를 다음과 같이 생성해야 합니다.

 // 回调函数
 function callback(data)
 {
 
 }
 该回调函数有一个参数,该参数就是客户端返回的数据。
 针对于第四步,再次利用jQueyr的选择器函数得到DIV层,将返回的数据显示在该层之上,如下:
 function callback(data)
 {
 /**
 * 第三步,接收服务器端返回的数据
 */
 // 将服务器端返回的数据动态的显示在页面上
 var resultObject = $("#result");
 resultObject.html(data);
 }

jQuery의 html() 메소드를 사용하여 데이터를 DIV 레이어에 동적으로 표시합니다.
이제 위 코드를 최적화하면 단 두 문장의 코드로 위 코드의 모든 기능을 구현할 수 있습니다. 이것이 jQuery의 장점 중 하나입니다. verify.js 파일의 verify() 메서드는 다음 형식으로도 작성할 수 있습니다.

$.get("TestServlet&#63;uname=" +$("#uname").val(),null,function(data){
 $("#result").html(data);
})

다음은 Ashx jQuery Ajax를 사용하여 구현한 "로그인 새로 고침 없음"의 예입니다.
1. 백엔드 인스턴스 코드 ashx 파일(데이터베이스에서 읽어 대체 가능)

public void ProcessRequest(HttpContext context) 
{ 
 context.Response.ContentType = "text/plain"; 
 //context.Response.Write("Hello World"); 
 
 string name = context.Request.Params["name"].ToString().Trim(); 
 if ("china".Equals(name)) 
 { 
 context.Response.Write("1");//1标志login success 
 } 
 else 
 { 
 context.Response.Write("0");//0标志login fail 
 } 
} 

2. 프런트엔드 예제 코드 aspx 파일

<html xmlns="http://www.w3.org/1999/xhtml"> 
<head runat="server"> 
 <title></title> 
 
 <script src="js/jquery-1.4.2.js" type="text/javascript"></script> 
 
 <script type="text/javascript"> 
 $(function() { 
  $("#test").live("click", function() { 
  //alert(0); 
  $.ajax({ 
   type: 'POST', 
   url: 'Handler1.ashx', 
   data: { "name": $("#name").val() }, 
   success: function(data) { 
   if (1 == data) 
    alert('login success'); 
   else 
    alert('login fail'); 
   } 
  }); 
  }); 
 }); 
 </script> 
 
</head> 
<body> 
 <form id="form1" runat="server"> 
 <div> 
 <input type="text" name="name" id="name" /> 
 <input type="button" name="test" id="test" value="validate" /> 
 </div> 
 </form> 
</body> 
</html> 

위의 코드를 프런트엔드 aspx 페이지와 백엔드 ashx 페이지에 각각 입력하면 아주 간단한 Ajax 로그인이 가능해집니다.

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.