這篇文章主要介紹了AJAX簡單異步通信,實例分析了Ajax異步通信的技巧與相關注意事項,具有一定參考借鑒價值,需要的朋友可以參考下
本文實例講述了AJAX簡單異步通訊的方法。分享給大家供大家參考。具體分析如下:
客戶端:向伺服器發出空請求。
程式碼如下:
<html> <head> <title>XMLHttpRequest</title> <script language="javascript"> var xmlHttp; function createXMLHttpRequest(){ if(window.ActiveXObject) xmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); else if(window.XMLHttpRequest) xmlHttp = new XMLHttpRequest(); } function startRequest(){ createXMLHttpRequest(); xmlHttp.open("GET","9-1.aspx",true); xmlHttp.onreadystatechange = function(){ if(xmlHttp.readyState == 4 && xmlHttp.status == 200) alert("服务器返回: " + xmlHttp.responseText); } xmlHttp.send(null); } </script> </head> <body> <input type="button" value="测试异步通讯" onClick="startRequest()"> </body> </html>
#伺服器端:直接向客戶端傳回一個字符串。
<%@ Page Language="C#" ContentType="text/html" ResponseEncoding="gb2312" %> <%@ Import Namespace="System.Data" %> <% Response.Write("异步测试成功,很高兴"); %>
問題一:
由於IE 瀏覽器會自動快取非同步通訊的結果,不會即時更新伺服器的回傳結果。 (但Firefox 會正常刷新)
為了解決非同步連接伺服器時IE 的快取問題,更改客戶端程式碼如下:
var sUrl = "9-1.aspx?" + new Date().getTime(); //地址不断的变化 xmlHttp.open("GET",sUrl,true);
當測試程式時,如果客戶端和伺服器端都在同一台電腦上時,非同步物件會傳回目前請求的http狀態碼status == 0 ,於是再次更改客戶端程式碼如下:
//if(xmlHttp.readyState == 4 && xmlHttp.status == 200) if( xmlhttp.readyState == 4) { if( xmlhttp.status == 200 || //status==200 表示成功! xmlhttp.status == 0 ) //本机测试时,status可能为0。 alert("服务器返回: " + xmlHttp.responseText); }
<html> <head> <title>XMLHttpRequest</title> <script language="javascript"> var xmlHttp; function createXMLHttpRequest(){ if(window.ActiveXObject) xmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); else if(window.XMLHttpRequest) xmlHttp = new XMLHttpRequest(); } function startRequest(){ createXMLHttpRequest(); var sUrl = "9-1.aspx?" + new Date().getTime(); //地址不断的变化 xmlHttp.open("GET",sUrl,true); xmlHttp.onreadystatechange = function(){ //if(xmlHttp.readyState == 4 && xmlHttp.status == 200) if( xmlhttp.readyState == 4) { if( xmlhttp.status == 200 || //status==200 表示成功! xmlhttp.status == 0) //本机测试时,status可能为0。 alert("服务器返回: " + xmlHttp.responseText); } } xmlHttp.send(null); } </script> </head> <body> <input type="button" value="测试异步通讯" onClick="startRequest()"> </body> </html>
上面是我整理給大家的,希望今後會對大家有幫助。 相關文章:
######AJAX機制詳解以及跨域通訊###############Ajax無刷新分頁的效能最佳化方法## ######################基於firefox實作ajax圖片上傳####################以上是AJAX簡單非同步通訊實例分析的詳細內容。更多資訊請關注PHP中文網其他相關文章!