Skip to content
/ toast Public
forked from pyrsmk/toast

Just a minimal but yet powerful resource loader

Notifications You must be signed in to change notification settings

unfold/toast

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

23 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Toast 0.2.9

Toast is a tiny resource loader for JS and CSS files.

Features

  • load resources as soon as possible to avoid FOUC issues (especially when loading stylesheets)
  • infinite nesting
  • advanced callback support
  • tested against IE 5.5+, Chrome, Safari 3+, Opera 9+, Firefox 2+

Syntax

It accepts two parameters:

  • a string or an array of strings representing resources to load
  • an optional callback

Here's how toast loads resources:

// Load one css file for mobiles
toast('css/mobiles.css');

// Load several resources for desktops
if(screen.width>800){
    toast([
        'css/screens.css',
        'js/modernizr.js',
        'js/classie.js'
    ]);
}

And how callbacks are used:

// The callback is called when jQuery has been loaded
toast('scripts/jquery.js',function(){log('loaded');});

// Works, naturally, with several resources
toast(
    [
        'css/screens.css',
        'js/modernizr.js',
        'js/classie.js'
    ],
    function(){
        log('All is loaded');
    }
);

Sometimes, on some browsers, scripts are not parsed yet when we want to use them (like calling a function from that script). To resolve that issue, toast provides a simple way:

toast(
    'scripts/jquery.js',
    function(){
        // The callback will be called until `$` is not set
        if(!window.$){
            return false;
        }
        // jQuery actions
        // .....
    }
);

This is, returning false into the callback makes it called while it doesn't return another value than false (so, an undefined returned value won't make the callback to hang on).

Finally, as nested resources are fully supported, you can do that:

toast(
    [
        'css/screens.css',
        [
            [
                'js/modernizr.js',
                'js/respond.js',
                [
                    'js/selectivizr.js',
                    function(){
                        log('Selectivizr has been loaded');
                    }
                ]
            ],
            function(){
                log('Modernizr, respond and selectivizr have been loaded');
            }
        ],
        'js/classie.js'
    ],
    function(){
        log('Screens.css, modernizr, respond, selectivizr and classie have been loaded');
    }
);

License

Toast is licensed under the MIT license.

About

Just a minimal but yet powerful resource loader

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 100.0%