Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/lavoiesl/async-js-loader
Load Social Media widgets libraries asynchronously and delayed (Facebook, Twitter, etc.)
https://github.com/lavoiesl/async-js-loader
Last synced: 2 months ago
JSON representation
Load Social Media widgets libraries asynchronously and delayed (Facebook, Twitter, etc.)
- Host: GitHub
- URL: https://github.com/lavoiesl/async-js-loader
- Owner: lavoiesl
- Created: 2012-08-13T21:42:55.000Z (over 12 years ago)
- Default Branch: master
- Last Pushed: 2012-08-13T23:54:45.000Z (over 12 years ago)
- Last Synced: 2023-03-13T16:11:54.520Z (almost 2 years ago)
- Language: PHP
- Size: 107 KB
- Stars: 1
- Watchers: 2
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Asynchronous Javascript Loader
Some javascript libraries are big and they pose a stress on the browser when they are loaded all at the same time.
Most of these libraries suggest to load them in async.
## Library examples
* Google Analytics
* Google Maps
* Google Plus
* Facebook Like
* Twitter button## Problems with existing solution
* A lot of ugly script tag with semi-minified code.
* Most of the library suggest the same trick so we see code duplication.
* You have to go copy-paste the code each time you start a new project.
* If you have multiple libraries, they will all fire at the same time, possibly causing a stress on the browser
* While the libraries are loading (usually with a lot of dependencies) the browser is sluggish and users probably want to read that article before clicking on 'Like'.## Solution
* Load each library with a function taking an `id`, a `url` and a `delay`.
* Allow each library to have a different delay.
* You may want Google Maps to load only 200ms after the page, but the Facebook Like can wait a bit more.## Usage
```bash
composer.phar install # autoloader
php build.php twitter facebook > /path/to/you/project/js/async-libs.js
```And add a `` tag just before the closing tag of `