2011-06-28 21 views

回答

3

即使用户浏览到另一个网页?

没有。一旦页面关闭,您将无法控制发生的情况。

+0

仅供参考,现在正在寻找这种现象,多年后。一个cookie可以保存上次运行的时间,然后在页面加载时将超时设置为10分钟 - (cookieStartTime - timeNow) – Luke3butler

1

使用setIntervalsetTimeout使未来的某事发生。

但是一旦用户离开你的页面的计时器将被取消 - 的全部内容将被卸载。

0

您可以使用:

setTimeout(alert('After 10 secs'),10000); 
+0

页面卸载后不起作用。 – Babiker

+3

Ofcourse JavaScript在页面卸载后不起作用。 –

+3

这是10秒,而不是10分钟。 ; o) – user113716

8

只需创建要执行的onload功能,对DOM准备调用它一次,再使用的setTimeout()

<script type="text/javascript"> 
    function doSomething() { 
     alert("Doing something here"); 
    } 
    window.onload = function() { 
     doSomething(); //Make sure the function fires as soon as the page is loaded 
     setTimeout(doSomething, 600000); //Then set it to run again after ten minutes 
    } 
</script> 

编辑: 没”即使他们在另一个页面上,也不会注意到该部分。如果它是您网站上的另一个页面,则可以在页面加载后设置Cookie,并在设置cookie时添加时间戳。在其余页面的window.onload中,您可以读取该时间戳,并计算是否已过10分钟。如果有,请再次调用该函数。

编辑:10分钟是600000毫秒

0

如果用户访问另一个网站在相同的标签,你的运气了;一旦你的网页关闭,JavaScript就会死亡。

但是,如果用户只是访问您的网站上的其他网页,那么您很幸运。你可以这样做,如下所示......但它需要对网站进行基本的重新设计。你必须使用一个框架来包装XHR中的所有链接点击(XML HTTP请求),并用新数据替换页面,给你一个错觉,即点击链接(你是这样的,但浏览器永远不会刷新页)。这可以通过iframe来完成。这是GMail的工作原理。

你可以编写这样一个自己的框架,但是你最好使用具有对伪造历史(或者你的网站将不会与用户历史很好地工作),URL重写支持的框架。

要回答你的问题有关“每10分钟”,(因优化一些浏览器可能有问题)使用setInterval(myFunction, 10*60*1000)

0

假设您使用服务器的语言,您可以设置在启动一个会话变量(启动日期/时间),然后使用setInterval的,比较当前的时间启动日期/时间。

0
function callfunction() { 
    // do something 
} 
window.onload = function() { 
    // Initial function call 
    callfunction(); 
    setInterval(function() { 
    // Invoke function every 10 minutes 
    callfunction(); 
    }, 600000); 
} 
0

您需要将状态保存在远程服务器中。

这是你的步骤:

  1. 的JavaScript函数加载,无论身在何处时,它加载或。

  2. 加载时(javascript fn)使用UNIQUEID调用远程服务器,该服务器可以通过cookie或会话变量从登录用户标识中获得...无论如何。

  3. 您使用此类UNIQUEID向服务器发送请求(通常通过ajax),您的服务器会告诉您这样的进程是否必须重新启动,或者您应该避免它(页面跳转作为示例或刷新页面不同的浏览器使用相同的登录名,这取决于您的业务逻辑)。

  4. 来自step3的响应用于执行/初始化JavaScript加载器或不加载。

相关问题