asp.net里,n个用户访问同一个页面,当数据库有新数据进来以后,这n个用户的页面上自动弹出一个窗口。弹出窗口先不要管,最重要的是怎么样将消息即时反映到这n个用户的页面上?

解决方案 »

  1.   

    用ajax去请求数据库!有新记录弹出窗口!
      

  2.   

    ajax来做,网上有很多ajax的资料的!
      

  3.   

    用application 来定义全局变量, 
    void Session_Start(object sender, EventArgs e) 
        {
            Application.Lock();
            Application["Counter"] = (int)Application["Counter"] + 1;
            Application.UnLock();
            // 在新会话启动时运行的代码    }
    方法二 判断 数据库。
      

  4.   

    ajax肯定要用的。
    要即时获得数据库情况,难道只有1秒钟刷新一次吗?这样资源消耗是不是太大了点儿?
    如果10秒钟刷新一次的话,资源消耗虽然小了,但就不是即时的效果了。
      

  5.   

    代码:
    CREATE TRIGGER myTrigger
    FOR INSERT
    AS
      Declare @Object as Int;  Declare @ResponseText as Varchar(8000);
      
      Exec sp_OACreate 'MSXML2.XMLHTTP', @Object OUT;  Exec sp_OAMethod @Object, 'open', NULL, 'get', 'http://www.mywebsite.com/abc.aspx'  Exec sp_OAMethod @Object, 'send'  Exec sp_OAMethod @Object, 'responseText', @ResponseText OUTPUT  Select @ResponseText  Exec sp_OADestroy @Object
    数据库里必须选中“OLE自动化”选项(在sql server外围应用配置器里配置)
      

  6.   

    不好意思,这句CREATE TRIGGER myTrigger 
    FOR INSERT 应该是CREATE TRIGGER myTrigger ON myTable 
    FOR INSERT 
      

  7.   

    Exec sp_OAMethod @Object, 'open', NULL, 'get', 'http://www.mywebsite.com/abc.aspx' 
    这句漏了个参数,应该是:
    Exec sp_OAMethod @Object, 'open', NULL, 'get', 'http://www.mywebsite.com/abc.aspx', 'false'
      

  8.   

    hzzasdf,你这个是sqlserver里的吧。
    oracle有没有这个功能?
      

  9.   

    查到一个帖子,是9i里用的,现在oracle都到11g了,应该也行的吧:http://www.oracle-base.com/articles/9i/ConsumingWebServices9i.php