js ajax無重新整理載入頁面程式碼

來源:互聯網
上載者:User

js原生態寫法

 代碼如下 複製代碼

var mm;  
var nn;  
function makeRequest(url,obj,b) {  
mm=obj;  
nn=b;  
 http_request = false;  
 if (window.XMLHttpRequest) {  
  http_request = new XMLHttpRequest();  
  if (http_request.overrideMimeType){  
   http_request.overrideMimeType('text/xml');  
  }   
 } else if (window.ActiveXObject) {  
  try{  
   http_request = new ActiveXObject("Msxml2.XMLHTTP");   
  } catch (e) {  
   try {  
    http_request = new ActiveXObject("Microsoft.XMLHTTP");  
   } catch (e) {  
   }  
  }  
 }   
 if (!http_request) {  
  alert("您的瀏覽器不支援當前操作,請使用 IE 5.0 以上版本!");  
  return false;  
 }  
   
 
//定義頁面調用的方法init,不是init();沒有();  
 http_request.onreadystatechange = init;   
 http_request.open('GET', url, true);   
 
//禁止IE緩衝  
 http_request.setRequestHeader("If-Modified-Since","0");   
 
//發送資料  
 http_request.send(null);  
 
//每60秒重新整理一次頁面  
 //setTimeout("makeRequest('"+url+"')", 1000);   
}  
 
function init() {   
 
 
 if (http_request.readyState == 4) {  
  if (http_request.status == 0 || http_request.status == 200) {  
   var result = http_request.responseText;  
   if(result==""){  
    result = "擷取失敗";  
   }  
 
var z=result.split("#");  
 
if(z[0]=="bnm")  
{  
alert(z[1]);  
window.location.reload();  
}  
else if(z[0]=="nm")  
{  
 
}  
else 
{  
document.getElementById ("pinpai"+mm).value=z[0];   
//document.getElementById ("pp"+mm).value=z[1];   
document.getElementById ("lsj"+mm).value=z[2];   
document.getElementById ("lxk"+mm).value=z[3];   
document.getElementById ("lb"+mm).innerHTML=z[4];   
}  
  } else {//http_request.status != 200  
   alert("請求失敗!");  
  }  
 }  


jquery+ajax/" target="_blank">jquery ajax

使用load方式來進行非同步請

 代碼如下 複製代碼

$(".ajax.load").load("/xxx.php",
function (responseText, textStatus, XMLHttpRequest){
this;//在這裡this指向的是當前的DOM對象,即
$(".ajax.load")[0]
//alert(responseText);//請求返回的內容
//alert(textStatus);//請求狀態:success,error
//alert(XMLHttpRequest);//XMLHttpRequest對象
});


使用POST方式來進行非同步請求


Ajax.aspx:

 代碼如下 複製代碼

Response.ContentType = "application/json";
Response.Write("{result: '" + Request["Name"] + ",你好!(這訊息來自伺服器)'}");jQuery 代碼:
$.post("Ajax.aspx", { Action: "post", Name: "lulu" },
function (data, textStatus){
// data 可以是 xmlDoc, jsonObj, html, text, 等等.
//this; // 這個Ajax請求的選項配置資訊,請參考jQuery.get()說到的this
alert(data.result);
}, "json");

jQuery Ajax 事件

局部事件就是在每次的Ajax請求時在方法內定義的,例如:

 代碼如下 複製代碼
 $.ajax({
beforeSend: function(){
// Handle the beforeSend event
},
complete: function(){
// Handle the complete event
}
// ...
});

全域事件是每次的Ajax請求都會觸發的,它會向DOM中的所有元素廣播,在上面 getScript() 樣本中載入的指令碼就是全域Ajax事件。全域事件可以如下定義:

 代碼如下 複製代碼
 $("#loading").bind("ajaxSend", function(){
$(this).show();
}).bind("ajaxComplete", function(){
$(this).hide();
});

或者:

 代碼如下 複製代碼

 $("#loading").ajaxStart(function(){
$(this).show();
}); 我們可以在特定的請求將全域事件禁用,只要設定下 global 選項就可以了:

 $.ajax({
url: "test.html",
global: false,// 禁用全域Ajax事件.
// ...
});

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.