2013-03-06 102 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