JavaScript 的 setInterval
本身是運行在單個頁面或標簽頁內(nèi)的。當你在一個頁面中設置了一個 setInterval
,它只會影響那個特定的頁面。如果你想在多個頁面之間共享定時器的行為,你需要使用一些額外的方法來實現(xiàn)。
一種方法是使用 localStorage
或 sessionStorage
來存儲定時器的 ID。你可以在一個頁面中啟動定時器,并將定時器的 ID 存儲在存儲中。然后,在另一個頁面中,你可以檢查存儲中是否存在定時器 ID,并使用該 ID 來恢復或清除定時器。
以下是一個簡單的示例:
const intervalId = setInterval(() => {
console.log('Interval running in page A');
}, 1000);
// 將定時器 ID 存儲在 localStorage 中
localStorage.setItem('myIntervalId', intervalId);
// 從 localStorage 中獲取定時器 ID
const intervalId = localStorage.getItem('myIntervalId');
// 如果存在定時器 ID,則使用它來恢復定時器
if (intervalId) {
setInterval(() => {
console.log('Interval running in page B');
}, 1000);
} else {
console.log('No interval found in localStorage');
}
請注意,這種方法并不能真正實現(xiàn)跨頁面執(zhí)行定時器,而是在多個頁面之間共享定時器的狀態(tài)。如果你需要在多個頁面之間實時同步定時器的執(zhí)行,你可能需要考慮使用 WebSockets 或其他實時通信技術。