ajax three implementation method instance code
- 2020-12-20 03:48:31
- OfStack
ajax is asynchronous javascript and xml. This article introduces three implementation methods of ajax (prototype implementation, jquery implementation, XMLHttpRequest implementation) to code farmers.
This article will focus on comparing three ways to implement Ajax to get started.
Preparation:
1, prototype. js
2, jquery1. 3.2 min js
3, json2 js
Background handler (Servlet), access path servlet/testAjax:
Java code
package ajax.servlet;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* Ajax Example background handler
* @author bing
* @version 2011-07-07
*
*/
public class TestAjaxServlet extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=utf-8");
PrintWriter out = response.getWriter();
String name = request.getParameter("name");
String age = request.getParameter("age");
System.out.println("{\"name\":\"" + name + "\",\"age\":\"" + age + "\"}");
out.print("{\"name\":\"" + name + "\",\"age\":" + age + "}");
out.flush();
out.close();
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request,response);
}
}
TestAjaxServlet takes two arguments: name and age, and returns a string written in JSON format.
Front page parameter input interface:
Html code
<div id="show"> Display area </div>
<div id="parameters">
name:<input id="name" name="name" type="text" /><br />
age:<input id="age" name="age" type="text" /><br />
</div>
1. prototype implementation
<script type="text/javascript" src="prototype.js"></script>
<script type="text/javascript">
function prototypeAjax()
{
var url = "servlet/testAjax";// request URL
var params = Form.serialize("parameters");// Submitted form
var myAjax = new Ajax.Request(
url,{
method:"post",// Request way
parameters:params, // parameter
onComplete:pressResponse, // Response function
asynchronous:true
});
$("show").innerHTML = " In process ...";
}
function pressResponse(request)
{
var obj = request.responseText; // Receive as text
$("show").innerHTML = obj;
var objJson = request.responseText.evalJSON(); // Parse the received text into Json format
$("show").innerHTML += "name=" + objJson['name'] + " age=" + objJson['age'];
}
</script>
<input id="submit" type="button" value=" submit " onclick="prototypeAjax()" /><br />
In the Ajax implementation of prototype, the evalJSON method is used to convert strings to JSON objects.
2. jquery implementation
<script type="text/javascript" src="jquery-1.3.2.min.js"></script>
<script type="text/javascript" src="json2.js"></script>
<input id="submit" type="button" value=" submit " /><br />
<script type="text/javascript">
function jqueryAjax()
{
var user={"name":"","age":""};
user.name= $("#name").val();
user.age=$("#age").val();
var time = new Date();
$.ajax({
url: "servlet/testAjax?time="+time,
data: "name="+user.name+"&age="+user.age,
datatype: "json",// The data type returned by the requested page
type: "GET",
contentType: "application/json",// Notice the request page's contentType Keep it here 1 to
success:function(data) {// Here, data Is the data returned by the requested page
var dataJson = JSON.parse(data); // use json2.js In the parse Method will be data Converted to json format
$("#show").html("data=" + data + " name="+dataJson.name+" age=" + dataJson.age);
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
$("#show").html("error");
}
});
}
$("#submit").bind("click",jqueryAjax); // Bind submit button
</script>
New contact with jQuery, es65EN2.ES66en on the processing of json. Also ask the seniors to give advice.
3. XMLHttpRequest implementation
<script type="text/javascript">
var xmlhttp;
function XMLHttpRequestAjax()
{
// To get the data
var name = document.getElementById("name").value;
var age = document.getElementById("age").value;
// To obtain XMLHttpRequest object
if(window.XMLHttpRequest){
xmlhttp = new XMLHttpRequest();
}else if(window.ActiveXObject){
var activxName = ["MSXML2.XMLHTTP","Microsoft.XMLHTTP"];
for(var i = 0 ; i < activexName.length; i++){
try{
xmlhttp = new ActiveXObject(activexName[i]);
break;
}catch(e){}
}
}
xmlhttp.onreadystatechange = callback; // The callback function
var time = new Date();// in url Time is added to make each request no 1 sample
var url = "servlet/testAjax?name="+name+"&age="+age+"&time="+time;
xmlhttp.open("GET",url,true); // In order to get Mode send request
xmlhttp.send(null); // Parameters have been url , so there is no need to participate here
}
function callback(){
if(xmlhttp.readyState == 4){
if(xmlhttp.status == 200){ // In response to success
var responseText = xmlhttp.responseText; // Receive the response message as text
var userdiv = document.getElementById("show");
var responseTextJson = JSON.parse(responseText); // use json2.js In the parse Method will be data Converted to json format
userdiv.innerHTML=responseText + " name=" + responseTextJson.name + " age=" + responseTextJson.age;
}
}
}
</script>
<input id="submit" type="button" value=" submit " onclick="XMLHttpRequestAjax()" /><br />
Through this article, I hope to help you, thank you for your support to this site!