Asp.net能否实现服务器推送技术?
用ajax实时刷新 觉得浪费资源
在网上看到有个服务器推送技术
不知道Asp.net能否实现服务器推送技术?
来问问大家 有没有用过
------解决方案--------------------http模型注定不能搞PUSH
------解决方案--------------------
各位前辈看看这个是不是所谓的推技术~~
HTML code
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="PushTest._Default" %>
<!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>
</head>
<body>
<form id="form1" runat="server">
<div id="time">
</div>
</form>
</body>
</html>
<script>
function SetTimer(p){
document.getElementById("time").innerHTML = p;
}
</script>
------解决方案--------------------
------解决方案--------------------
应该不行,你可以从实现原理上来分析,物理逻辑行的通才可以,否则。。
我原来就是使用AJAX来实现服务器事件监听
------解决方案--------------------
Http协议只有被动请求,当然像20楼那样的长链接确实可以达到推的目的。不过实质上还是拉模式。
通过msxml的com组件结合20楼的方法可以实现拟推模式的应用。
msxml2以上版本的DomDocument有个ondataavailable的事件,使用这个事件就可以实现所需要的异步功能。
------解决方案--------------------
------解决方案--------------------
------解决方案--------------------
绝对可以。
Dependency Injection 依赖注射 Ioc (试试看)
------解决方案--------------------
搞清楚原理.
BS是无状态的.
既然服务器不知道客户端状态.
服务器向哪推?
有这几句话以后, 你还废脑筋想什么推送技术.
别说asp.net不可以, JSP同样不可以. 任何一种语言都不可能在BS结构上实现推送这个行为.
你可能要说有些控件或者ACTIVEX可以做到. 那一定是连接状态的socket. 不可能是BS结构.
------解决方案--------------------
我以前也问过这个问题,得到的答案和今天差不多
------解决方案--------------------
几年前研究过 你可以参考一下
http://topic.csdn.net/t/20050609/17/4071415.html
------解决方案--------------------
20搂的确是好办法,很奇怪为什么很多书(包括一些好书)中都没有介绍过?
下一步我想改写我那个定时刷新页面的Ajax留言板了。让它不再定时刷新!而是每次有用户发言时,才向其他聊天者的页面刷新!这个用Render中的Write语句看来是可以做到的,在检测条件中加一个提交控制变量就行了。奇怪,怎么没看见有人做出来呢?
另外顺便说一下,我刚刚弄了一本《ASP.NET案例精编》,作者周栋祥,大约3月份可以上市吧。这本书(VB的),对于入门者学习ASP.NET甚好。感兴趣的到时候可以留意一下。
再回过头来说Push技术,既然Sun能搞,我相信MS肯定也是有方法的,只是我们某些人还不识庐山真面目而已。
------解决方案--------------------