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

请教关于ASP.NET,AJAX的问题
问题是这样的,我们有个C/S项目要转为B/S项目,但有个难题实现不了,就是如何让服务器主动向客户机发送消息,我在网上查了一下,几乎是不可能的,因为B/S是请求/响应的模式。


但是不知道AJAX可以实现吗?
我想实现最简单的如下:
在ASP.NET页面上有一个TextBox1控件,如何使用AJAX不人为参与让TextBox1的值随数据库的变化而变化,可以做到吗?谢谢
能给个例子最好,哪怕是一个最简单的例子,谢谢!!

------解决方案--------------------
不可以,ajax也是用户端不停的刷服务端,B/S结构中server是不可能主动向B发消息的。
------解决方案--------------------
ajax 定时轮询
setTimeout

------解决方案--------------------
可以。的 网易的邮箱就是~
------解决方案--------------------
tjvictor(终于升星了,向两星奋斗) ( ) 信誉:100 Blog 加为好友 2007-05-17 18:02:46 得分: 0


不可以,ajax也是用户端不停的刷服务端,B/S结构中server是不可能主动向B发消息的。


其实 当你打开了网页就是发送了请求。。这个时候就可以用JS来控制时间来异步刷新

间接的也可以实现 如网易的邮箱
------解决方案--------------------
服务器主动向客户机发送消息,应该不行
------解决方案--------------------
如果客户端页面打开,“服务器主动向客户机发送消息”还是有很多方法的。
1,像上面说的用ajax 定时轮询 setTimeout。
2,页面中放一个隐藏iframe,定时提交信息给服务器。

如果客户端页面不打开,那我目前晓得的就只有在服务器上建立一个win服务(就像win自带的自动升级服务那样,一定时间后就提示用户)。
------解决方案--------------------
很不幸的告诉你,这是完全可以的,而 Ajax 正是解决这类问题的正宗解决方案。
不管是服务器端定时来“推”,还是客户端定时去“拉”,结果都是客户的数据“随数据库的变化而变化”。(当然从技术上讲,在 B/S模式下服务器端定时来“推”是无法实现的,因为http是一个无状态协议,页面打开完毕,连接就中断了,只要客户端不请求,服务端是不能保证客户端是否还存在的。)
具体做法是,在客户端定义一个定时器,在一定的时间间隔里去访问数据库即可。这个用 MS.net 的 Ajax.framework 是个易如反掌的事情,基本上一会儿就可以搞定。
------解决方案--------------------
如果楼主对ajax不熟悉 可以 用脚本刷新

<script language= "javascript " type= "text/javascript ">
function redir()
{
window.location.href = "upaction.aspx ";
}
window.setInterval( "redir() ", 60000); //一分钟刷新一次.
</script>