C# 实现HTML5服务器推送事件
2015-09-10 16:05 Evan.Pei 阅读(2262) 评论(0) 编辑 收藏 举报为什么需要服务器推送事件:
因为如果需要保持前台数据的实时更新例如,IM聊天,股票信息,
1.可以在客户端不断地调用服务端的方法来获得新数据,但是这样会很消耗服务器资源,导致系统变慢!
2 html5的新特性能在服务器直接发送最新数据到前台进行显示。
先看后台的写法:WebForm8.aspx.cs
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | protected void Page_Load( object sender, EventArgs e) { Response.ContentType = "text/event-stream" ; Response.Expires = -1; while ( true ) { Response.Write( "date1235:" + DateTime.Now+ "\n\n" ); Thread.Sleep(2000); //向客户端发送当前的缓冲数据 //如果你将Flush写的循环外面,将会等循环执行完后一起显示到前台,当然这个是死循环 Response.Flush(); } } |
在看html的写法:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm8.aspx.cs" Inherits="WebApplication1.WebForm8" %> <! DOCTYPE html> <!--注意此处是HTML5的标识,写出这样代表目前用的html版本是5--> < html xmlns="http://www.w3.org/1999/xhtml"> < head runat="server"> < meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> < title ></ title > </ head > < body > < form id="form1" runat="server"> < div id="result"> </ div > </ form > </ body > </ html > < script type="text/javascript"> //HTML5 服务器推送事件 function ServerSendClient() { if (typeof (EventSource) !== "undefined") { var source = new EventSource("WebForm8.aspx.cs"); source.onmessage = function (event) { document.getElementById("result").innerHTML += event.data + "< br />"; }; } else { document.getElementById("result").innerHTML = "Sorry, your browser does not support server-sent events..."; } } ServerSendClient(); </ script > |
前台截图:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构