ajax非同步重新整理實現更新資料庫

來源:互聯網
上載者:User

上篇文章都是關於介面的東西,下面寫關於如何把無重新整理的把資料寫入到資料庫中。

當我們改變某一個人或某幾個人的某項分值實現無重新整理寫入資料庫。
首先,我們需要聲明XMLHttpRequest對象 複製代碼 代碼如下://聲明XMLHttpRequest對象
var xmlHttp;
function createXMLHTTP() {
if (window.XMLHttpRequest) {
xmlHttp = new XMLHttpRequest(); //Mozilla瀏覽器
}
else if (window.ActiveXObject) {
try {
xmlHttp = new ActiveXObject("Msxml2.XMLHTTP"); //IE老版本
}
catch (e)
{ }
try {
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); //IE新版本
}
catch (e)
{ }
if (!xmlHttp) {
window.alert("不能建立XMLHttpRequest對象執行個體!");
return false;
}
}
}

同時,需要回呼函數來確定是否修改成功 複製代碼 代碼如下://更新或者添加記錄的回呼函數(檢驗是否評分成功)
function ModifyScore ()
{
if (xmlHttp.readyState == 4)
{
// if (xmlHttp.status == 200)
{
if (xmlHttp.responseText == "true")
{
}
else
{
// alert("評分失敗,請重新評分或者與管理員聯絡");
}
}
}
}

準備工作完成之後,下面就是關鍵的一步:
因為需要在修改分值的時候寫入資料庫,所以只需要在上篇部落格中提高的改變下拉框值(迴圈選中項時)的執行這樣一段代碼: 複製代碼 代碼如下://擷取互評ID
var criticsID = checkbox[i].value;
//把修改值寫入資料庫
//擷取項目分數
var scoreAll = document.getElementById("score" +checkbox[i].value + srcElem.id + "");
var accessAllScore = scoreAll.outerText;
//擷取項目編號
var assess = document.getElementById("assess" + srcElem.id);
var assessID = assess.title;
createXMLHTTP(); //建立XMLHttpRequest對象
//把資料傳入到另一個頁面執行
var url = "CriticsAgainAjax.aspx?criticsID=" + criticsID +"&assessID=" + assessID + "&accessAllScore=" +accessAllScore + "&Event=allCriticsInfo";
xmlHttp.open("Post", url, true);
// xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
xmlHttp.onreadystatechange = AnswerOneKindQuestion;
xmlHttp.send(null);

最後,我們只需要在CriticsAgainAjax.aspx擷取參數,並執行寫入資料庫就可以了 複製代碼 代碼如下://擷取參數
if(Request.QueryString["Event"].ToString() =="allCriticsInfo")
{
string criticsID = Request.QueryString["criticsID"].ToString();
string assessID = Request.QueryString["assessID"].ToString();
string accessAllScore =Request.QueryString["accessAllScore"].ToString();
}

參數傳過來之後,寫入資料庫就很容易了,這裡就不提了。
這樣,在前台顯示的效果就是沒有重新整理,時時的把資料寫入到資料庫。只是把髒活累活都交給CriticsAgainAjax.aspx頁面來幹,這也是一種不錯的分工。
這樣寫出了少重新整理以外,還有另一個好處就是ajax是非同步作業,即在js頁面中把資料拋到CriticsAgainAjax.aspx之後,他就繼續執行,他不考慮CriticsAgainAjax.aspx是否執行完成,可能拋過來100條資料,寫入資料庫需要三秒鐘,而拋過來的時間是非常快的,可能就零點幾秒,所以使用者的感覺會非常好,他不需要在選中後等半天才能繼續執行。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.