大众计算机学习网欢迎诸位!收藏本站注 册登 陆
常用教程:基础知识网络知识操作系统WPS网页制作数据库算法网页成功之路网络安全最新技术古典mid流行midmid背景下载中心
您现在的位置:首页 > 教程 > 文章页

ashx eventsource简单实例

Admin | 2016-12-15 11:21:30 | ReadNums | 222 | 标签 asp.net | 打印本页
     

  一、eventsource前台代码

  ①JS代码

  if(typeof EventSource != "undefined")
  {
    var source = new EventSource("MyCommon.ashx");
    //e.data在onopen事件里是undefined
    source.onopen = function (e) {
         document.getElementById("result").innerHTML += "<br/>" + "已连接" + "<br/>";
    };
    source.onmessage = function (e) {
         document.getElementById("result").innerHTML += "onmessage" + e.data + "<br/>" + e.target.url + "<br/>" +   e.target.readyState + "<br/>";
    };
    //e.data在onerror事件里是undefined 
    source.onerror = function (e) {
       document.getElementById("result").innerHTML += "连接失败" + "<br/>"; 
    };
  }
  else
  {
    document.getElementById("result").innerHTML = "不支持您老的浏览器~"
  }

  ②HTML控件

  <div id="result"></div>

  二、ASHX代码

  public void ProcessRequest(HttpContext context)
  {
          //设置类型 
          context.Response.ContentType = "text/event-stream";
          //Provisional headers are shown
          //Accept:text/event-stream
          //Cache-Control:no-cache
          //context.Response.Headers.Set("Cache-Control", "no-cache"); //这种不行
            
          //禁止页面缓存的可行2种形式
          context.Response.Cache.SetNoStore();//Cache-Control:private, no-store//可以
          // TimeSpan TS = new TimeSpan(0);
          // context.Response.Cache.SetMaxAge(TS);//Cache-Control:private, max-age=0//可以
          string time = "data:" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "\n\n";//数据前面必须以data:开头,后面必须有两个换行
          context.Response.Write(time);
  }


问题未解决:在线咨询我要在线咨询问题

网友评论

(访客)
内容实用原创,讲得很好。
20xx年x月x日
(站长)
有问题请在线咨询。
20xx年x月x日