Comet ASP.NET AJAX 示例


       最近公司有個項目,里面要求要用到Comet技術,所以就到網上找了一下相關的資料和文章,發現有些人說用Ajax的 長輪詢比較好,后來就百度了一下,發現comet貌似就是通過ajax演變而來的,也就是comet是ajax里面的一種,只不過有多種實現方式,下面我來貼一個經過自己修改后的代碼,最后也會貼一個我在博客園上看到的一篇文章的地址,我的代碼是通過他的文章所受到的啟發修改的,感謝他.
        前台:
<!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 id="Head1" runat="server">
    <title></title>
    <script src="Scripts/jquery-1.4.1.min.js" type="text/javascript"></script>
    <script type="text/javascript">
        function fUpdateData(fData) {
            $.post("comet_broadcast.asyn", { content: fData },
                function (data, status) {
                    var result = $("#divResult");
                    result.html(result.html() + "<br/>" + data);
//                    $("#divResult").html(data);
                    //服務器返回消息,再次請求后台數據
                    fGetData();
                }, "html"
         );
        }
        //獲取服務器最新信息
        function fGetData() {
            $.ajax({
                type: 'GET',
                url: 'ProvideData.ashx',
                success: function (data) {
                    fUpdateData(data);
                }
            });
        }
        $(document).ready(function () {           
            //初始化
            fGetData();           
        });
    </script>
    <style type="text/css">
        * { font-size12px; }
        #divResult { border1px solid #000width250px; }
    </style>
</head>
<body>
    <form id="form1" runat="server">
    <div>       
        后台推送最新消息:
        <div id="divResult">
        </div>
    </div>
    </form>
</body>
</html>

ProvideData.ashx  代碼:
/// <summary>
    /// ProvideData 的摘要說明
    /// </summary>
    public class ProvideData : IHttpHandler
    {
        public void ProcessRequest(HttpContext context)
        {
            context.Response.ContentType = "text/plain";
            context.Response.Write("Hello World:"+DateTime.Now.ToString("HH:mm:ss"));//需要輸出特定的信息的,可以在這里處理,例如讀取數據庫的最新參數啊,獲取memcached的值之類的都行.
        }
        public bool IsReusable
        {
            get
            {
                return false;
            }
        }
    }


Web.config
<httpHandlers>
      <add path="comet_broadcast.asyn" type="AsnyHandler" verb="POST,GET"/>
    </httpHandlers>
    <compilation debug="true" targetFramework="4.0" />


還有兩個類,類的代碼我上傳附件好了,如果看不到附件的童鞋請私信或者回復我,我會及時更新.

下面貼一下我在博客園看到的的文章的網址,在此再次的感謝他:

http://www.cnblogs.com/hanxianlong/archive/2010/04/27/1722018.html





附件列表

     


    免責聲明!

    本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



     
    粵ICP備18138465號   © 2018-2025 CODEPRJ.COM