vb2005xu 发表于 2013-1-23 02:41:37

利用Jquery实现http长连接(LongPoll)

转载: http://blog.csdn.net/yuxuanji/archive/2009/04/13/4069732.aspx
 
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="JqueryAjaxLongPoll.aspx.cs" Inherits="JqueryAjaxLongPoll" %><!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>    <script type="text/javascript" src="script/jquery-1.2.6.js"></script>    <script type="text/javascript">      $(document).ready(function(){            $("#Button1").bind("click",{btn:$("#Button1")},function(evdata){                $.ajax({                  type:"POST",                  url:"JqueryAjaxLongPoll.aspx",                  dataType:"json",                  timeout:10000,                  data:{ajax:"1",time:"10000"},                  success:function(data,textStatus){                            //alert("ok!");                            evdata.data.btn.click();                  },                  complete:function(XMLHttpRequest,textStatus){                            if(XMLHttpRequest.readyState=="4"){                              alert(XMLHttpRequest.responseText);                            }                  },                  error: function(XMLHttpRequest,textStatus,errorThrown){                            //$("#ajaxMessage").text($(this).text()+" out!")                            alert("error:"+textStatus);                            if(textStatus=="timeout")                              evdata.data.btn.click();                  }                });            });            /*$("#ajaxMessage").ajaxStart(function(){                $(this).text("准备建立请求.readyState0:");            });            $("#ajaxMessage").ajaxSend(function(evt, request, settings){                $(this).text("开始请求,准备发送数据.readyState1:"+request.readyState);            });            $("#ajaxMessage").ajaxComplete(function(event,request, settings){                if(request.status==200)                  $(this).text("请求完成.readyState4:"+request.readyState);            });            $("#ajaxMessage").ajaxStop(function(){                $(this).text("请求结束.");            });*/      });    </script></head><body>    <form id="form1" runat="server">    <div>      <input id="Button1" type="button" value="AjaxLongPoll" />      <label id="ajaxMessage"></label>    </div>    </form></body></html>using System;using System.Data;using System.Configuration;using System.Collections;using System.Web;using System.Web.Security;using System.Web.UI;using System.Web.UI.WebControls;using System.Web.UI.WebControls.WebParts;using System.Web.UI.HtmlControls;using System.Threading;public partial class JqueryAjaxLongPoll : System.Web.UI.Page{    protected void Page_Load(object sender, EventArgs e)    {      if (Request.Form["ajax"] == "1")      {            //Response.End();            int time = Convert.ToInt32(Request.Form["time"]);            DateTime date1 = DateTime.Now.AddMilliseconds((double)time);            bool ready = false;            while (Response.IsClientConnected)            {                Thread.Sleep(3000);                if (DateTime.Compare(date1, DateTime.Now) < 0)                {                  Response.End();                  break;                }                //ready = true;                if (ready)                {                  Response.Write("SetValue('" + DateTime.Now.ToString() + "')");                  //Response.Flush();                  Response.End();                  break;                }                else                {                }            }      }      else      {            if (!Page.IsPostBack)            {            }      }    }}  
<div class="quote_title">写道
页: [1]
查看完整版本: 利用Jquery实现http长连接(LongPoll)