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(); }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现