Skip to content

alfredsgenkins/asyncei

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Asyncei

Pure JS, lighweight, asynchronous content loader

Install

npm install --save-dev asyncei

Quick start

  1. First, initialize Asyncei:
import Asyncei from 'asyncei';
new Asyncei('/path/to/handler/');
  1. Then, in your HTML do:
<div data-fetch="subpath/to/block"></div>
  1. Watch your block loading asynchronous! 🎉

How it works?

  1. Asyncei queries page in the lookup for specified attribute;
  2. Fetches all found urls asynchronously;
  3. Fetches images in each loaded content block;
  4. Dispatches blockContentLoaded event, on the load of the a block;
  5. After all blocks are loaded dispatches allBlocksLoaded event;

API

Customization

When initializing Asyncei three parameters may be set:

  1. handlerURL – (required) URL for content loading handler.
  2. renderFunction – Function to handle content rendering.

Should take two params: element – DOM Element, and text – string of content. Default one is:

(element, text) => {element.innerHTML = text}
  1. queryAttribute – Attribute to query in search of loadable blocks. Default is data-fetch.

Events

Each block load triggers custom event blockContentLoaded. Example:

let example = document.getElementById('example-component');
example ? example.addEventListener('blockContentLoaded', () => onExampleLoad()) : null;

If all blocks queried on page are loaded, custom event allBlocksLoaded is triggered. Example:

document.addEventListener('allBlocksLoaded', () => onAllLoaded());

Demo

Find our demo here: preload-demo repository

About

Pure JS, lighweight, asynchronous content loader

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published