我有一个使用jQuery Mobile和PhoneGap开发的应用程序。我希望在用户停留在特定页面30秒后执行一个函数。
如果用户停留在page1页面,我想每30秒执行一次一个函数。
更简单地说,如果当前页面是page1,则每30秒触发getmessages()函数。
如何实现这个功能?
如果用户停留在page1页面,我想每30秒执行一次一个函数。
更简单地说,如果当前页面是page1,则每30秒触发getmessages()函数。
如何实现这个功能?
使用setInterval
查看此演示
<div id="div2>
<input type="text" name="divText" value="q3"/>
</div>
setInterval(function() {
alert('HI')
}, 30000);
时间以毫秒为单位(1000= 1秒)
You can setInterval
.
Code:
$(document).ready(function(){
function myFunction()
{
setInterval(function(){alert("Hello")},3000);
}
$('#click').click(function(){
myFunction()
})
})
HTML:
<p>Click the button to wait 3 seconds, then alert "Hello".</p>
<p>After clicking away the alert box, an new alert box will appear in 3 seconds. This goes on forever...</p>
<button id="click">Try it</button>
根据您的需求,将3000(3秒)--> 30000(30秒)
进行替换。
pagecontainershow
和pagecontainerhide
事件,以便根据页面id
执行基于interval的函数。在这些事件中检索页面的id
,然后使用switch / case来执行函数,同时在页面隐藏时使用clearInterval
。/* setInterval function's name */
var interval;
/* 1) On page show, retrieve page's ID and run checkPage()
2) On page hide, clearInterval() */
$(document).on("pagecontainershow", function () {
var activePage = $.mobile.pageContainer.pagecontainer("getActivePage")[0].id;
checkPage(activePage);
}).on("pagecontainerhide", function () {
clearInterval(interval);
});
/* Run function(s) based on page's ID */
function checkPage(page) {
switch (page) {
case "p1":
interval = setInterval(function () {
/* function(s) */
}, 30000);
break;
case "p2":
interval = setInterval(function () {
/* function(s) */
}, 30000);
break;
}
}
Demo 的HTML代码保留不变。