在堅果殼中,如果用戶不在主頁上,則需要清除名爲newsCheck
的函數的間隔。似乎很簡單,我也這麼認爲。這給我造成了巨大的問題。我使用歷史api,這是爲什麼間隔不會在頁面重新加載和更改時清除。如果不符合條件,則清除間隔
這裏是我有離開了
//only run if on home page
if (url == 'Home' || url == '' || url == 'home' || url == 'home.html' || url == 'Home.html'){
//set up interval handler for cancellation when not on home
var handle=self.setInterval(function(){newsCheck()},1000);
// ...
}//close if Home clause
else
{
handle = self.clearInterval(handle);
}
好不重要的腳本,newsCheck
是檢查從通過AJAX查詢(查詢)數據庫中的新信息的功能。當不在家時,這需要取消,因爲不需要它。
歷史API
額外的信息,我需要取消間隔,因爲我用的是歷史API腳本因此新頁面的功能不斷即使我們不在主頁上運行加載。
爲了解決這個問題,我把它放在歷史API的loadContent
函數中。
$.ajax({
type: "GET",
url: "AJAX/request_feed.js",
dataType: "script"
});
正如你可以看到它運行我們上,使得newsCheck
功能可以取消任何網頁。這就是我在上面的腳本中進行網址檢查的原因。
在使用newsCheck
函數的腳本中,我將url變量放在(document).ready
之前,以便在url更改爲新url時檢索url,因此它不會獲取上一頁的url。然後我們檢查URL和運行腳本,如果在Home
,並且如果我們不清除間隔。
什麼樣的「巨大問題?」我也不確定'self'與'window'(或者什麼都沒有)是多麼兼容 –
'newsCheck'是...? – gdoron
@gdoron對不起是在急。信息全部在那裏 –