问题:
在webform上有一个控件,这个控件最好是能够实时的去访问数据库,一旦数据库里面有改动,便对客户端提交数据,显示最新的数据。
分析:
因为是要客户端更新,所以必须要用到js的前台时钟功能,服务端变了,客户端要刷新才能更新数据,如何能做到不刷新更新数据,或者假刷新页面,即客户端基本看不出的刷新。
解决办法:(有错的地方还请大家更正,本人水平有限,谢谢了)
主要有两种解决方法:实时性的和轮询性的
实时:通过在数据库中增加触发器去触发,然后在服务器中写了一个文件,用做信号量。这种技术我觉得对这个问题来言过于复杂,所以就没继续研究,有兴趣的朋友可以去msdn上看,但确实能够做到实时的更新数据,对即时的对话最有效。
轮询:1、采用xmlhttp无刷新方式。这类方式可以看下我前面转的别人写的文章,里面有详细介绍,但是我测试了后,发觉从服务器上获取的是整个页面的html代码,要从中得到你需要的控件内容,并且重置还是过于复杂,且效率不一定高。
2、用html的框架去完成,也就是我主要写的方法,这个方法简单易于实现,对只是动态显示很小数据的情况我觉得非常好用。
详细介绍:在html中需要更新的地方写上<iframe src="../test/webform2.aspx"></iframe> src就是要连接的页面,然后把框架的大小和滚动条什么的按照需要调整下。
新建一个页面webform2.aspx,作为被框架的连接页面,把需要实时更新的控件也放在这个页面里面,然后在其中的page_load事件里面
private sub page_load(byval sender as system.object, byval e as system.eventargs) handles mybase.load
'在此处放置获取数据库更新的代码,和控件关联
Java Asp PHP .Net XML C/C++ CGI VB Jsp J2ee J2se J2me EJB Servlet Tomcat Resin Struts Weblogic Eclipse ANT GUI JMS Web servise IDEA Webphere Hibernate Spring Jboss Applet Swing Socket Javamail Perl Ajax P2P 安全 模式 框架 测试 开源 游戏
Windows XP Windows 2000 Windows 2003 Windows Me Windows 9.x Linux UNIX 注册表 操作系统 服务器 应用服务器