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

 

你可能感兴趣的:(Ajax)