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();


    }
复制代码

 

posted @   阿日斯兰  阅读(155)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示