zoukankan      html  css  js  c++  java
  • 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





    附件列表

    • 相关阅读:
      JavaScript相关,this 的指向
      酷炫的渲染,CSS3动画!
      正襟危坐,聊一聊Web语义化
      本地存储的技术,localStorage、sessionStorage、cookie、session
      Express 系列(终章):MongoDB使数据持久化
      股票投资相关,成交量怎么看
      【日本語新聞選読】第5回:3月31日
      【1901日語听解2】第5回:3月30日
      【日語視聴説2】第5回:3月30日
      【日本語新聞編集】第4回:3月27日
    • 原文地址:https://www.cnblogs.com/nangong/p/3701224.html
    Copyright © 2011-2022 走看看