我們有一個Ajax系統設置使用Chrome瀏覽器來檢查不同的事件中未讀郵件:如何設定的時間間隔添加到查詢腳本
var JHR = function (method, url, data, fun) {
var xhr = new XMLHttpRequest();
xhr.responseJSON = null;
// xhr.open('POST', url);
xhr.open(method, url, true);
xhr.setRequestHeader("Authorization", "Basic " + data.userAuth);
xhr.setRequestHeader('Content-Type', 'application/json');
xhr.addEventListener('load', function() {
//my old man once told me "Zirak, sometimes, you must face the dangers
// of life head on". he then threw me in a shark tank. but I'm sure it
// applies here too.
//...I was only 7
xhr.responseJSON = JSON.parse(xhr.responseText);
if (fun) fun(xhr.responseJSON, xhr);
});
xhr.send(JSON.stringify(data));
return xhr;
};
var pollInterval = 1*60*60; // 60 min
var timerId;
function startRequest() {
updateBadge();
timerId = window.setTimeout(startRequest, pollInterval);
}
function stopRequest() {
window.clearTimeout(timerId);
}
function getUnreadCount(onSuccess, onError) {
chrome.storage.sync.get("userAuth", function(data) {
var response = JHR("GET", "https://api.rss.com/v2/unread_entries.json", {userAuth: data.userAuth});
console.log(response);
});
}
function updateBadge() {
// Callbacks for onSuccess, and onError
getUnreadCount(function(data) {
chrome.browserAction.setBadgeText({text:data.unreadItems});
}, function(data){
chrome.browserAction.setBadgeText({text:'error'});
});
}
我們想設置一個變量的時間間隔(每5例如分鐘),並且每5分鐘發送一次ajax呼叫或者將變量設置爲任何值。
有人可以幫助我們確定在哪裏添加此行爲?我認爲pollInterval會處理它,但事實並非如此。
爲什麼不將'window.setTimeout'更改爲'windows.setInterval'(還有clearInterval)? – MarcusVinicius
謝謝你的建議,clearInterval如何工作? – tmartin314
'setTimeout'和'setInterval'具有相同的簽名,您只需更改代碼中的函數名稱即可。 – MarcusVinicius