Start in 10 minutes with a 2KB library
-
<script src="https://cdn.jsdelivr.net/gh/cloudouble/live@1.0.2/live.min.js"></script>
-
<input name="testinput" live-subscription="testlistener:example" live-trigger="change:example" /> <script src="https://cdn.jsdelivr.net/gh/cloudouble/live@1.0.2/live.min.js"></script> <script> window.LiveElement.Live.processors.example = function(input) { switch(window.LiveElement.Live.getHandlerType(input)) { case 'subscription': return {placeholder: input.payload._timestamp} case 'trigger': console.log(`You changed the value of ${input.attributes.name} to "${input.map['#value']}"`) } } window.LiveElement.Live.listeners.testlistener = {processor: 'default', delay: 1000, max: 10} </script>
- Learn everything at https://github.com/Cloudouble/live (9 minute read)

Dead Simple To Use
- Backend agnostic: push / pull data from any API, websockets, IndexedDB or any other source you can think of
- Low footprint: updates run from the browser's idle loop where possible to conserve resources
- Minimal markup required: only two attributes required on your HTML tags, can be used on any HTML tag that accepts attributes and/or value, innerText and innerHTML properties
- Reuse your processor functions: define a data processor once, and reuse it as a polling listeners, a data transform pipeline, or a event handler
- Fast: poll for and react to data updates as often or as seldom as you like
- Flexible: polling schedules can be literally anything, including reacting on the fly to retrieved data
You Don't Need Another Framework
Forget complex Javascript frameworks and just learn and use native Javascript properly. Learn more over at https://developer.mozilla.org/en-US/docs/Web/JavaScript