• Ajax长轮询


    前台代码:

    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Wait.aspx.cs" Inherits="Web监听.Wait" %>
    
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <title></title>
        <link href="/JS/easyui/easyui.css" rel="stylesheet" type="text/css" />
        <script src="/JS/jquery.min.js" type="text/javascript"></script>
        <script src="/JS/easyui/jquery.easyui.min.js" type="text/javascript"></script>
        <script src="/JS/SimpoWindow.js" type="text/javascript"></script>
        <script type="text/javascript">
            var longPollingCount;
    
            $(function () {
                longPollingCount = 1;
                $("#msg").html("" + longPollingCount + "次请求......");
    
                longPolling();
            });
    
            function longPolling() {
                $.ajax({
                    type: "POST",
                    url: "Check.aspx?action=check",
                    dataType: "text",
                    timeout: 5000,
                    error: function (XMLHttpRequest, textStatus, errorThrown) {
                        longPollingCount++;
                        $("#msg").html("" + longPollingCount + "次请求......");
    
                        if (textStatus == "timeout") { // 请求超时
                            longPolling(); // 递归调用
                        } else { // 其他错误,如网络错误等
                            $("#msg").html(textStatus);
                            longPolling();
                        }
                    },
                    success: function (data, textStatus) {
                        var parent = SimpoWin.GetWinParent();
                        $("#txt").html("操作完成......");
                        $("#txt").css("color", "red");
    
                        setTimeout(function () {
                            SimpoWin.closeWin();
                            parent.next(data);
                        }, 1000);
    
                    }
                });
            }
        </script>
    </head>
    <body style="background-color: White;">
        <form id="form1" runat="server">
        <div id="txt" style="text-align: center; vertical-align: middle; margin-top: 20px;
            margin-bottom: 20px; font-weight: bold;">
            请等待......
        </div>
        <div id="msg" style="text-align: center; vertical-align: middle;">
        </div>
        </form>
    </body>
    </html>
    View Code

    后台代码:

    using System;
    using System.Threading;
    
    namespace Web监听
    {
        public partial class Check : System.Web.UI.Page
        {
            protected void Page_Load(object sender, EventArgs e)
            {
                string action = Request["action"];
                switch (action)
                {
                    case "check":
                        while (true)
                        {
                            if (Common.flag < 160)
                            {
                                Common.flag++;
                                Thread.Sleep(100);
                            }
                            else
                            {
                                Response.Write("操作完成返回信息");
                                Response.End();
                                break;
                            }
                        }
                        break;
                }
            }
        }
    }
    View Code
  • 相关阅读:
    使用SQL语句对表进行分页查询
    [转]Message Crack Wizard for Win32 SDK Developer
    笔记——《C语言也能干大事》之对话框程序代码
    如何通过C#调用CHM帮助文件,显示到指定页面
    winform 数字输入控件初稿
    用JAVA在读取EXCEL文件时如何判断列隐藏
    css中height:100%不起作用的解决方法 项目个案
    枚举(enum)的常用操作
    转 VirtualBox“please use a kernel appropriate for your cpu”
    Asp.NET导出Excel文件乱码 终极解决方法
  • 原文地址:https://www.cnblogs.com/s0611163/p/4122911.html
Copyright © 2020-2023  润新知