-2

可能重复:
自动页面刷新

我在网上找到了这个开关,想用它来刷新页面。如果用户单击“打开”,它将每 5 秒刷新一次页面。如果他们点击关闭,它将停止。可以请一些帮助我。这是我到目前为止所拥有的:

<style>



body{
font-family:Verdana, Geneva, sans-serif;
font-size:14px;}

.left{
float:left;
width:120px;}

#ajax{
float:left;
width:300px;
padding-top:5px;
font-weight:700;
}

.clear{clear:both;}

</style>

</head>

<body>


</a></div>
<div id="container">


 <div class="left" id="1"></div>
 <div id="ajax"></div>
  <div class="clear"></div>

  <script type="text/javascript">

    $('#1').iphoneSwitch("on", 
     function() {
       $('#ajax').load('on.html');
      },
      function() {
       $('#ajax').load('off.html');
      },
      {
        switch_on_container_path: 'iphone_switch_container_off.png'
      });
  </script> 
4

2 回答 2

0

为什么不使用一个简单的超时javascript函数,例如:

<script type="text/JavaScript">
    var timeoutPeriod = 5000;
    function timedRefresh(timeoutPeriod) {
        setTimeout("location.reload(true);",timeoutPeriod);
    }

</script>

您可以添加逻辑以仅在单击 on 开关时运行它。

于 2012-09-26T23:04:37.507 回答
0

您可以像这样启用和禁用页面刷新:

var refreshTimer;

$('#button').iphoneSwitch("on", 
    function() {
        refreshTimer = setTimeout(function(){ location.reload(true); }, 5000);
    },
    function() {
        clearTimeout(refreshTimer);
    },
    {
        switch_on_container_path: 'iphone_switch_container_off.png'
    }
);

如果你想使用 ajax 重新加载一些 html,你可以使用这样的东西(使用 setInterval):

var refreshTimer;

function ajaxReload()
{
    $.ajax .. etc
}

$('#button').iphoneSwitch("on", 
    function() {
        refreshTimer = setInterval(ajaxReload, 5000);
    },
    function() {
        clearInterval(refreshTimer);
    },
    {
        switch_on_container_path: 'iphone_switch_container_off.png'
    }
);

编辑

在此示例中,默认情况下禁用页面重新加载,当用户使用按钮启用它时,它将保持打开状态直到禁用

var refreshTimer;

function enableTimer()
{
    refreshTimer = setTimeout(function(){ location.reload(true); }, 5000);
    window.location.hash = "#autoreload";
}

function disableTimer()
{
    clearTimeout(refreshTimer);
    window.location.hash = "";
}

$(function() {

    $('#button').iphoneSwitch(
        (window.location.hash == "#autoreload" ? "on" : "off"), 
        enableTimer, 
        disableTimer
    );

    if (window.location.hash == "#autoreload")
        enableTimer();
});
于 2012-09-26T23:13:52.947 回答