Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/brandontruggles/diffhook
Asynchronous webhooks for monitoring changes in external webpages.
https://github.com/brandontruggles/diffhook
ajax async diff javascript monitoring webhook webhooks website
Last synced: about 2 hours ago
JSON representation
Asynchronous webhooks for monitoring changes in external webpages.
- Host: GitHub
- URL: https://github.com/brandontruggles/diffhook
- Owner: brandontruggles
- License: mit
- Created: 2017-10-23T12:11:36.000Z (about 7 years ago)
- Default Branch: master
- Last Pushed: 2017-10-27T03:22:07.000Z (about 7 years ago)
- Last Synced: 2024-11-07T02:42:50.647Z (12 days ago)
- Topics: ajax, async, diff, javascript, monitoring, webhook, webhooks, website
- Language: JavaScript
- Size: 37.1 KB
- Stars: 3
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
README
diffhook [![license](https://img.shields.io/github/license/brandonrninefive/diffhook.svg)](https://github.com/brandonrninefive/diffhook/blob/master/LICENSE.md) [![npm version](https://img.shields.io/npm/v/diffhook.svg)](https://www.npmjs.com/package/diffhook) [![Build Status](https://travis-ci.org/brandonrninefive/diffhook.svg?branch=master)](https://travis-ci.org/brandonrninefive/diffhook) [![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg)](https://github.com/brandonrninefive/diffhook/issues)
===Asynchronous webhooks for monitoring changes in external webpages.
Getting Started
==Using diffhook is as simple as the following (using ES6 syntax):
`npm i diffhook` or `yarn add diffhook`
```javascript
import diffhook from 'diffhook';var hook = null;
function testFunc(oldResponse, newResponse) {
console.log("Old Response:");
console.log(oldResponse);
console.log("New Response:");
console.log(newResponse);
clearInterval(hook);
}var hook = diffhook("https://brandonrninefive.github.io", 10000, testFunc, "Tick");
```The above setup will make an AJAX call to `https://brandonrninefive.github.io` and log the string `"Tick"` every 10 seconds. However, if a response has not been fully returned from the last AJAX call, or a connection error occurs, the next `"Tick"` will be logged, but a new AJAX call will not be sent out. Any connection errors will also be logged. `testFunc` will only be called if the AJAX request is successful, and the contents of the response differs between calls.
`diffhook` returns a call to `setInterval()`, meaning the hook can be stopped with `clearInterval()`, such as in the example above.
Parameters
==`url` - (String) The URL of the webpage to monitor.
`interval` - (Number) The interval between AJAX calls (in milliseconds).
`callback` - (Function) The function to execute when a diff occurs between AJAX calls. This function is passed two parameters, `oldResponse`, and `newResponse`, representing the last and current contents of the AJAX response, respectfully.
`pollingStr` - (String) A string to log to the console each time an AJAX call is made. Passing `null` will prevent any logging.
Interval Courtesy
==Since making frequent requests to URLs can throttle the response times of servers, setting `interval` to be too low could be perceived as a network attack. For this reason, it is highly recommended that you set `interval` to be a minimum of multiple seconds, or even minutes, in length. If you want to use a smaller `interval` value, do so at your own risk.