首页 > 代码库 > Ajax长轮询
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>
后台代码:
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; } } }}
Ajax长轮询
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。