我通过在A页面的iframe中隐藏一个页面来定时刷新,其作用就是更新数据库中记录的登陆用户的活动时间为当前时间,同时删除用户的活动时间小于一定时间的用户(视为离线的用户),以此来显示在线用户列表。可我发现,当用户把A页面最小化后,里面的隐藏页面根本没有刷新,这样一段时间后,这类用户就被当作离线用户处理掉了,请问有什么好办法解决这个问题?谢谢大家另外,就是当用户最小化IE后,如何让它监测到有新消息时在状态栏上闪动?

解决方案 »

  1.   

    其实你没有必要刷新来更新
    可以放在页面的page_load里面进行这个操作
    因为数据库内在线列表是否准确不重要,重要的是用户看到的是准确的在线列表
    在有用户打开页面的时候进行这个操作就可以了
      

  2.   

    你是用什么方法来控制定时刷新?用js的settimeout吗?你的第二个问题,其实可以换个思路做,就是当页面定时刷新,有新消息时.不让状态栏上的窗口闪动,而是做一个小窗口,让它从页面的右下角升起,就想MSN一样,提示用户,这样即方便,达到目的,又不会让人烦.下面有个例子
    http://blog.joycode.com/dotey/archive/2005/01/19/43277.aspx
      

  3.   

    定时刷新是加的
    <META http-equiv="refresh" content="300; url='webfooter.aspx'">这样可以最小化应该也刷新吗?
      

  4.   

    <HEAD>
    <title>RefrsehPage</title>
    <meta name="GENERATOR" content="Microsoft Visual Studio.NET 7.0">
    <meta name="CODE_LANGUAGE" content="Visual Basic 7.0">
    <meta name="vs_defaultClientScript" content="JavaScript">
    <meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
    <LINK href="stylesheet/StyleSheet.css" type="text/css" rel="stylesheet">
    <meta http-equiv="refresh" url="RefreshPage.aspx" content="30">
    </HEAD>
      

  5.   

    <meta http-equiv="refresh" content="20">实现刷新,然后在后台Page_load里写Response.Write("<script language=javascript>window.open('a.aspx', '_blank', 'height=320, width=450,left=200,top=150, toolbar=no, menubar=no, scrollbars=no,resizable=no, status=no');</script>");
      

  6.   

    http://community.csdn.net/Expert/topic/3605/3605127.xml?temp=.4792902
      

  7.   

    定时刷新:
    <META http-equiv="refresh" content="60; url='index.aspx'">间隔刷时间为60秒,刷的页面为index.aspx,
      

  8.   

    你的定时刷新是用<meta>的refresh还是setTimeout来更新iframe.contentWindow.url?理论上两种方法都不应该在最小化时停止自动刷新,特别是后者。至于你需要让IE引起用户的注意,这是有js可以做到的(让任务栏上的IE闪烁),但兼容性方面——应该只有IE支持。详细的js代码,你可以去js版问问,或许有人能够更快地告诉你。
      

  9.   

    定时刷新:
    <META http-equiv="refresh" content="60" url="index.aspx">让IE引起用户的注意,用js的.focus();即可
      

  10.   

    <script language="javascript">
    window.setInterval("refreshForm()", 30000);
    function refreshForm(){
      parent.frames("your frame_name").location="your_link";
    }
    </script>