AJAX中POST与GET的区别及写法

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>无标题页</title>
    <style type="text/css">
        #get
        {
            width: 114px;
        }
        #post
        {
            width: 113px;
        }
    </style>
</head>
<body>
<script type="text/javascript">
var xmlHttp;
function createxmlHttpRequest()
{
   if(window.ActiveXObject)
     xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
     else if(window.XMLHttpRequest)
     xmlHttp = new XMLHttpRequest();
}
function createQueryString()
{
     var firstName = document.getElementById("firstName").value;
     var birthday = document.getElementById("birthday").value;
     var queryString = "firstName="+firstName+"&birthday="+birthday;
     return encodeURI(encodeURI(queryString));//防乱码
}
function doRequestUsingGet()
{
createxmlHttpRequest();
var queryString = "9-3.aspx?";
queryString+=createQueryString()+"&timestamp="+new Date().getTime();
   xmlHttp.open("GET",queryString);
   xmlHttp.onreadystatechange = handleStateChange;
   xmlHttp.send(null);
}
function doRequestUsingPost()
{
   createxmlHttpRequest();
   var url ="9-3.aspx?timestamp="+new Date().getTime();
   var queryString = createQueryString();
   xmlHttp.open("POST",url);
   xmlHttp.onreadystatechange = handleStateChange;
   xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
   xmlHttp.send(queryString);
}
function handleStateChange()
{
   if(xmlHttp.readyState==4 && xmlHttp.status == 200)
   {
   var responseDiv = document.getElementById("serverResponse");
   responseDiv.innerHTML=decodeURI(xmlHttp.responseText);
   }
}
</script>
<form>
<input id="firstName" type="text" /><br />
<input id="birthday" type="text" />
</form>
<form>
<input id="get" type="button" value="get" onclick="doRequestUsingGet();" /><br />
<input id="post" type="button" value="post" onclick="doRequestUsingPost();" /><br />
</form>
<div id="serverResponse"></div>
</body>
</html>
----------------------分隔线---------------------
9-3.aspx

<%@ Page Language="C#" ContentType="text/html" ResponseEncoding="gb2312" %>
<%@ Import Namespace ="System.Data" %>
<%
   
    if (Request.HttpMethod == "POST")
        Response.Write("POST:" + Request["firstName"]);
    else if (Request.HttpMethod == "GET")
    {
        Response.Write("GET:" + Request["firstName"]);
    }
%>

 

但是据我不是很严格的测试,得到的结果是,通常情况下,get的效率比post效率要高(所以效率高低,是指有时候Post的时候,数据没有返回值,而get正常情况下是有的),我不知道这个是什么原因引起的,但确实是存在一个这样的情况,所以在用的时候,大家可以试下。

posted @ 2008-11-02 14:44  海底的鱼  阅读(866)  评论(0)    收藏  举报