Javascript 如何在滑动页面上使用循环settimeout在Framework7中定期加载html模板
我正在使用Framework7(Framework7.io)。以下代码在主视图页面上运行良好,并使用循环settimeout每秒重新加载signups.html:Javascript 如何在滑动页面上使用循环settimeout在Framework7中定期加载html模板,javascript,jquery,html,html-framework-7,Javascript,Jquery,Html,Html Framework 7,我正在使用Framework7(Framework7.io)。以下代码在主视图页面上运行良好,并使用循环settimeout每秒重新加载signups.html: <script type=“text/javascript” src=“code.jquery.com/jquery-1.7.1.min.js”></script> <div id=“dnt” align=“center”></div> <div id=“signups”>&
<script type=“text/javascript” src=“code.jquery.com/jquery-1.7.1.min.js”></script>
<div id=“dnt” align=“center”></div>
<div id=“signups”></div>
<script language=“javascript”>
(function loop() {
document.getElementById(“dnt”).innerHTML = Date();
$(“#signups”).load(“signups.html”);
setTimeout(function () {
document.getElementById(“dnt”).innerHTML = Date();
$(“#signups”).load(“signups.html”);
loop()
}, 1000);
}());
</script>
(函数循环(){
document.getElementById(“dnt”).innerHTML=Date();
$(“#signups”).load(“signups.html”);
setTimeout(函数(){
document.getElementById(“dnt”).innerHTML=Date();
$(“#signups”).load(“signups.html”);
循环()
}, 1000);
}());
但是,如果我将代码放在滑动页面(signups.html)上,并在主视图中单击它(以便signups.html从页面右侧滑入),settimeout将不起作用,signups.html也不会加载。以下是滑动signups.html页面的html:
<div class=“navbar”>
<div class=“navbar-inner”>
<div class=“left”><a href=“#” class=“back link”> <i class=“icon icon-back”></i><span>Back</span></a></div>
<div class=“center sliding”><font face=arial size=4 color=333333><B>Signups</b></font></div>
</div>
</div>
<div class=“pages”>
<div data-page=“signups” class=“page”>
<div class=“page-content”>
<div class=“content-block”>
<div class=“content-block-inner”>
<script type=“text/javascript” src=“code.jquery.com/jquery-1.7.1.min.js”></script>
<div id=“dnt” align=“center”></div>
<div id=“signups”></div>
<script language=“javascript”>
(function loop() {
document.getElementById(“dnt”).innerHTML = Date();
$(“#signups”).load(“signups.html”);
setTimeout(function () {
document.getElementById(“dnt”).innerHTML = Date();
$(“#signups”).load(“signups.html”);
loop()
}, 1000);
}());
</script>
</div>
</div>
</div>
</div>
</div>
报名
(函数循环(){
document.getElementById(“dnt”).innerHTML=Date();
$(“#signups”).load(“signups.html”);
setTimeout(函数(){
document.getElementById(“dnt”).innerHTML=Date();
$(“#signups”).load(“signups.html”);
循环()
}, 1000);
}());
我不知道我做错了什么。任何提示都将不胜感激
Dave您可以使用
setInterval()
定期调用一个函数来加载数据
阅读更多
函数循环(){
//在代码中取消下面两行的注释
//document.getElementById(“dnt”).innerHTML=Date();
//$(“#signups”).load(“signups.html”);
console.log(“在循环中”);
}
setInterval(函数(){
loop();
}, 1000); //保持自己的时间间隔
问题不在于settimeout本身,而在于framework7(具有自己的javascript结构)不允许它在滑动页面上运行—它在主视图页面上运行良好。你需要在framework7中测试它,以了解我的意思。另外,我不喜欢setinterval,因为它会导致浏览器速度减慢和冻结(根据经验)。