|
转载: 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">写道 |
|