[英]jQuery Mobile reload only a div every 10 seconds
我正在开发一个简单的网站(使用jQuery mobile),
主页包含一个div(每10秒将重新加载一次)。
<div id="mainpage" data-role="page" >
<div data-role="header" data-position="fixed" data-theme="b" >
<h1><font face="Comic Sans Ms">Home</font></h1>
</div>
<div data-role="content" data-theme="b" >
<div id="content_to_reload">
//Reload every 10 seconds
//AJAX call to server
</div>
</div>
<div data-role="footer" data-theme="b" data-position="fixed">
<div data-role="navbar">
<ul>
<li><a href="page2.html"><img src="1.png" width="50"></a></li>
<li><a href="page3.html"><img src="2.png" width="50"></a></li>
<li><a href="page4.php"><img src="3.png" width="50"></a></li>
</ul>
</div><!-- /navbar -->
</div><!-- /footer -->
这是jQuery,用于重新加载内容#content_to_reload
:
<script type="text/javascript">
$(document).ready(function () {
$('#content_to_reload').delay(10000).load('myserver.php');
});
</script>
它已经起作用了。 但是我还有其他问题:
您应该使用jQuery.html()
而不是load()
:
$('#content_to_reload').html(data);
您应该使用JQM pagecontainer
检查当前页面:
$(document).on('pagecontainershow', function(e, ui) { switch (ui.toPage.prop('id')) { case 'mainpage': // start call to server break; default: // for all other cases, stop call to server } });
代替delay
,使用一个简单的计时器:
var callInterval = 10; // seconds var timerId = setInterval(function() { callToServer(); }, callInterval * 1000);
...当您切换活动页面时可以停止:
clearInterval(timerId);
放在一起: DEMO
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.