Detect when the browser's network requests are idle
MIT License
Detect when the browser has not made a network request within a specified amount of time. This implementation does not depend on a Service Worker and instead depends on a PerformanceObserver listening for resource entries.
npm i network-idle
CallbackType
type CallbackType = () => void
IOptions
interface IOptions {
filter?: string[]
}
requestNetworkIdle
and networkIdleCallback
.requestNetworkIdle(() => {
fetch('https://foo.bar/baz/?qux=corge') // Won't trigger callback again
}, 1000, {
filter: [ 'https://foo.bar/baz/?qux=corge' ]
})
requestNetworkIdle
Calls the callback
when there has not been a network request in the last timeout
milliseconds. The callback will be called every time the network has been idle for the specified amount of time.
requestNetworkIdle(callback: CallbackType, timeout: number, options: IOptions = {}): number
() => void
: The function to call when the network is idle.number
: How long there should be no network requests for the browser to be considered idle.IOptions
: Additional configuration options.number
: Callback idimport { requestNetworkIdle } from 'network-idle'
// No network requests in the last 500 milliseconds
requestNetworkIdle(() => {
// Called every time the network is idle
console.log('Network is idle!')
}, 500)
networkIdleCallback
Calls the callback
when there has not been a network request in the last timeout
milliseconds. Unlike requestNetworkIdle
, this method will only be called the first time the idle condition is met.
networkIdleCallback(callback: CallbackType, timeout: number, options: IOptions = {}): number
() => void
: The function to call when the network is idle.number
: How long there should be no network requests for the browser to be considered idle.IOptions
: Additional configuration options.number
: Callback idimport { networkIdleCallback } from 'network-idle'
// No network requests in the last 500 milliseconds
networkIdleCallback(() => {
// Called the first time the network is idle
console.log('Network is idle!')
}, 500)
clearNetworkIdle
Clears the network idle handler. This will clear both the requestNetworkIdle
and networkIdleCallback
events.
clearNetworkIdle(id: number): void
number
: The callback id returned by requestNetworkIdle
or networkIdleCallback
void
import { requestNetworkIdle, clearNetworkIdle } from 'network-idle'
const id = requestNetworkIdle(() => {
console.log('Network is idle!')
}, 500)
clearNetworkIdle(id) // Observer disconnected and timeout cleared
import { networkIdleCallback, clearNetworkIdle } from 'network-idle'
const id = networkIdleCallback(() => {
console.log('Network is idle!')
}, 500)
clearNetworkIdle(id) // Observer disconnected and timeout cleared