日期:2014-05-18  浏览次数:20461 次

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>

------解决方案--------------------
探讨
各位前辈看看这个是不是所谓的推技术~~

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>…

------解决方案--------------------
应该不行,你可以从实现原理上来分析,物理逻辑行的通才可以,否则。。
我原来就是使用AJAX来实现服务器事件监听
------解决方案--------------------
Http协议只有被动请求,当然像20楼那样的长链接确实可以达到推的目的。不过实质上还是拉模式。

通过msxml的com组件结合20楼的方法可以实现拟推模式的应用。

msxml2以上版本的DomDocument有个ondataavailable的事件,使用这个事件就可以实现所需要的异步功能。
------解决方案--------------------
探讨
b/s可以定时刷新,为什么非要push?
有什么web功能非得用服务器推送来实现?

------解决方案--------------------
探讨
引用:
b/s可以定时刷新,为什么非要push?
有什么web功能非得用服务器推送来实现?


比如数据库里面的数据有更新的时候向客户端显示!如用ajax访问是定时访问不停的请求!而如果有推的方式更节省服务器资源!

------解决方案--------------------

 绝对可以。
 
 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肯定也是有方法的,只是我们某些人还不识庐山真面目而已。
------解决方案--------------------