-2

无论我在哪里,我都需要定期运行一个函数。这个函数会定期获取一些数据。

我认为这行不通:

function myFunc()
{
    //your code
}

//set the interval

setInterval(myFunc,2000) //this will run the function for every 2 sec.

因为它只适用于我现在所在的页面,所以如果我转到另一个页面,功能将不再执行。我想编写一个函数,当用户位于索引页面时开始运行,然后定期调用,直到用户关闭页面。任何的想法?提前致谢!

4

3 回答 3

2

这在浏览器中使用 javascript 是不可能的。当您离开页面时,脚本将停止。您必须在初始化此定期更新的每个页面上包含一个脚本。或者您可以将您的应用程序重写为现在似乎很流行的“单页应用程序”。

于 2013-04-17T09:44:30.833 回答
1

您需要一个后端应用程序cron-job来执行此操作。

另一种方法是制作一个仅 Ajax 的单页应用程序。我猜推特使用了那个模型。

于 2013-04-17T09:46:10.680 回答
1

根据你在函数中所做的事情,你最好使用一个 JS Worker,它将作为一个新线程运行,并允许你在后台继续处理尽可能多的事情,而不必担心 JS 超时。

这里的要点是你的要求在 JS 中几乎是不可能的,除非你使用类似于 jQUery 的东西并将你的页面动态加载到一个 div 中?这意味着您仍然具有更改页面但浏览器仅加载数据的效果(视觉上)。

事实上,使用 jQuery 将内容加载到 DIV 中非常容易:

$('#elementoloadid").load("/path/to/load");

您可以在不使用 jQuery 的情况下实现这一点,但会花费您更长的时间。

于 2013-04-17T09:52:59.740 回答