2013-03-06 62 views
1

我们的论坛有一个通知系统,它附加(#)页面标题,#是当前通知的数量(消息,喜欢等)。这不是由AJAX或任何事情 - 只是使用他们的模板系统几页的通知#调用,就像这样:如何每X秒自动刷新页面标题

<title>({vb:raw total_notices}) - Our Site Title</title> 

我想使标题自动刷新每隔10秒左右,以反映最新的更新。我已经在我们的页脚模板(负载的每一页)尝试这样:

<script type="text/javascript"> 
setInterval(function() { 
     document.title = document.title; 
     }, 3000); 
</script> 

但它实际上并没有刷新,只是抓住了现有的标题。我知道代码本身工作/刷新,因为如果我将其更改为

document.title = "Test"; 

它更新标题为“测试”没有问题。

谢谢!

+0

你如何在没有Ajax的情况下更新它? – Wiz 2013-03-06 20:20:32

+0

为什么不刷新页面? – enginefree 2013-03-06 20:25:16

+0

@enginefree,这会增加很多负载到服务器。我们只是想要刷新标题 - 人们将同时使用该页面。 – 2013-03-06 21:00:28

回答

1

这很正常,因为做document.title = document.title;不会向您的论坛服务器发出请求。 如果你想刷新你的头衔,你必须做一个请求。

如果你有你的页面上的jQuery,你可以这样做:

setInterval(function() { 
    $.get(document.location.toString()).then(function (data){ 
     //find and set the title of the page 
     document.title = data.match(/<title>(.+)<\/title>/)[1]; 
    }); 
}, 3000); 

的工作,但它不是一个好主意,因为这个代码很多服务器上的请求......

+0

完美地工作,非常感谢!我会拒绝这些请求,所以它不会做太多:) – 2013-03-06 21:35:19