no-internet
Checking if the internet is accessible in the browser (not local connection only)
window.navigator.onLine
is the simplest approach to return the online status of the browser. It is not guaranteed to be accurate. Most implementations of the API watch for changes in the local network interface to determine if your application is online or not. But what if your network interface is up, but your router is down ☝️. window.navigator.onLine
will return true
and it means that you are online and that is WRONG. To handle that case we make XMLHttpRequest
and listen to change in the network state by events window.ononline
and window.onoffline
to be notified immediately 😎
Getting no-internet
npm
npm install --save no-internet
yarn
yarn add no-internet --save
Examples
import noInternet from 'no-internet'
One check
noInternet().then(offline => {
if (offline) {
}
})
Interval checking
function noInternetCallback(offline) {
if (offline) {
}
}
noInternet({ callback: noInternetCallback })
noInternet.clearInterval()
With options
noInternet({
milliseconds: 10000,
timeout: 4000,
callback: noInternetCallback,
url: 'https://github.com/favicon.ico',
headers: { 'Access-Control-Allow-Origin': '*' }
})
API
noInternet(options)
options
Type: Object
milliseconds
Type: number
Default: 5000
Connection is checked at specified intervals (in milliseconds)
timeout
Type: number
Default: 5000
Number of milliseconds a request can take before automatically being terminated (completed).
url
Type: string
Default: ${window.location.protocol}//${window.location.host}/favicon.ico
HTTP request is sent to DOMAIN/favicon.ico
for connection checking.
You can specify URL with domain for e.g. https://github.com/favicon.ico
Type: Object
Default: { 'Cache-Control': 'no-cache' }
An object of additional headers key/value pairs to send along with request
callback
Type: function
Arguments: offline
type boolean
Default: undefined
Function that gets called in each connection checking
Contributing
Any contributions you make are greatly appreciated.
Please read the Contributions Guidelines before submitting a PR.
License
MIT © Vasyl Stokolosa