2017-07-21 123 views
0

我有一张内含动态值的表格。我需要它刷新每“n”秒而不刷新页面。我尝试使用加载功能,但无法让它工作。如何每隔N秒刷新一次网页的一部分

这是我的HTML

<tbody id="leaderboardUpdate"> 
     @foreach ($quizLeaderBoard as $key => $leaderBoardValue) 
      <tr> 
       <th scope="row">{{ ++$key }}</th> 
       <td><a target="_blank" href="{{ url('profile') . '/' . $leaderBoardValue->user->username }}">{{ $leaderBoardValue->user->displayName() }}</a></td> 
       <td>{{ $leaderBoardValue->totalScore }}</td> 
      </tr> 
     @endforeach 
     </tbody> 

回答

0

负载的功能是做它的正确途径。

function startTimer() { 
    //do your stuff 
    $('#leaderboardUpdate').load('/remote/content.html #leaderboardUpdate > *'); 
    //repeats itself after 4 seconds 
    setTimeout(startTimer, 4000); 
} 

startTimer(); 

将“/remote/content.html”更改为表格所在的实际页面URL。只要确保你的页面标题中显然有jQuery插件。

在上面,30000以毫秒为单位等于30秒。

使用setTimeout的优点是,如果连接挂起一段时间,您将不会收到大量待处理的请求,因为只有在前一个完成后才会发送新请求。

为了有一个循环的函数事件,您需要将所有内容放在setTimer在自己执行后会调用的函数中。

+0

我想这代码,但在这种情况下,领先的div – Lily

+0

可以respecify良好的ID内的整个网站重装(刚刚更新了我的答案)给这个一杆;-) –

+0

它的工作原理,但它只能执行一次 – Lily

-1

您可以使用js函数setInterval()来获取实时数据。并使用ajax从服务器获取数据。

$(document).ready(function(){ 
    getNewData(); 
    self.setInterval("getNewData()",2000); 
}); 

function getNewData(){  
    //at this function,you can get data from server and split html. 
} 
+0

我如何从服务器获取数据? – Lily