ajax异步提交
需引入jquery脚本
1、提交端脚本
var eid = '<%= str_eid%>'; var date = '<%= str_date%>'; var year = '<%= str_year%>'; var quarter = '<%= str_quarter%>'; var ssid = '<%= str_ssid%>'; //队列提交开始 var ajaxes = []; var xmlhttp = function () { var xhr = false; try { xhr = new ActiveXObject("Msxml2.XMLHTTP"); } catch (e) { try { xhr = new ActiveXObject("Microsoft.XMLHTTP"); } catch (e1) { xhr = false; } } if (!xhr && typeof XMLHttpRequest != 'undefined') { xhr = new XMLHttpRequest(); } return xhr; } var xhr = new xmlhttp(); //获得XMLHttpRequest实例对象xhr //executeAjax是主要的执行Ajax的函数 var executeAjax = function () { // //如果队列为空,则退出执行 if (!ajaxes.length) return; //setTimeout("waitTime()", 2000); var options = ajaxes[0]; if (xhr) { xhr.open(options.method, options.url, true); xhr.onreadystatechange = function () { if (xhr.readyState === 4 && (xhr.status === 200 || xhr.status === 304)) { options.callback(xhr.responseText, options.deptid, options.scid); //删除队列中的第一个请求 ajaxes.shift(); //如果队列中还有请求,就接着递归执行executeAjax函数,直到队列为空 if (ajaxes.length > 0) { executeAjax(); } } } if (xhr.method === "post") { xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); } xhr.send(options.data || null); } } //用于添加队列的函数 var addAjax = function (options) { ajaxes.push(options); } //具体的操作 var submitOneQuestion = function (deptid, scid, levelid, score) { var url = String.format("mz_exam2Operation.ashx?eid={0}&&date={1}&&year={2}&&quarter={3}&&ssid={4}&&deptid={5}&&scid={6}&&levelid={7}&&score={8}", eid, date, year, quarter, ssid, deptid, scid, levelid, score); addAjax({ method: "GET", url: url, deptid: deptid, scid: scid, callback: applyDom }); //开始执行队列 executeAjax(); } //返回状态 var applyDom = function (reponseText, deptid, scid) { //reloadNum(); if (reponseText == "success") { var cell_rbtn1 = $('#' + 'cell_' + deptid + '_' + scid + '_rbtn1'); var cell_rbtn2 = $('#' + 'cell_' + deptid + '_' + scid + '_rbtn2'); var cell_rbtn3 = $('#' + 'cell_' + deptid + '_' + scid + '_rbtn3'); var cell_score = $('[id^=cell_' + deptid + '_' + scid + '_score]'); cell_rbtn1.css('color', '#6bd553'); cell_rbtn2.css('color', '#6bd553'); cell_rbtn3.css('color', '#6bd553'); //cell_score.css('color', '#6bd553'); cell_rbtn1.css('fontWeight', 'bold'); cell_rbtn2.css('fontWeight', 'bold'); cell_rbtn3.css('fontWeight', 'bold'); //cell_score.css('fontWeight', 'bold'); cell_score.attr('isRequest', '1');//是否有返回值,0为未返回,1为返回。 } } //队列提交结束 function RadioChanged(cname, classno) { $("#" + cname).attr("level", classno); var deptid = cname.split('_')[1]; var scid = cname.split('_')[2]; var levelid = classno; var score = "0"; //不同类型有不同分数段 if (scid >= 1 && scid <= 4) { switch (classno) { case "1": $("#" + cname).val("15"); score = 15; break; case "2": $("#" + cname).val("10"); score = 10; break; case "3": $("#" + cname).val("5"); score = 5; break; default: $("#" + cname).val("15"); score = 15; break; } } else if (scid >= 5 && scid <= 8) { switch (classno) { case "1": $("#" + cname).val("10"); score = 10; break; case "2": $("#" + cname).val("7"); score = 7; break; case "3": $("#" + cname).val("3"); score = 3; break; default: $("#" + cname).val("10"); score = 10; break; } } //增加随时提交。 submitOneQuestion(deptid, scid, levelid, score); }
2、接收端代码
public void ProcessRequest(HttpContext context) { context.Response.ContentType = "text/plain"; String str_eid = context.Request.QueryString["eid"].ToString(); String str_date = context.Request.QueryString["date"].ToString(); String str_year = context.Request.QueryString["year"].ToString(); String str_quarter = context.Request.QueryString["quarter"].ToString(); String str_ssid = context.Request.QueryString["ssid"].ToString(); String str_deptid = context.Request.QueryString["deptid"].ToString(); String str_scid = context.Request.QueryString["scid"].ToString(); String str_levelid = context.Request.QueryString["levelid"].ToString(); String str_score = context.Request.QueryString["score"].ToString(); if (SubmitOneQuestion(str_eid, str_date, str_year, str_quarter, str_ssid, str_deptid, str_scid, str_levelid, str_score)) { context.Response.ContentType = "text/plain"; context.Response.Write("success"); } else { context.Response.ContentType = "text/plain"; context.Response.Write("failed"); } context.Response.Buffer = true; context.Response.ExpiresAbsolute = DateTime.Now.AddDays(-1); context.Response.Cache.SetExpires(DateTime.Now.AddDays(-1)); context.Response.Expires = 0; context.Response.CacheControl = "no-cache"; context.Response.Cache.SetNoStore(); }