scriptjs
Version:
Asyncronous JavaScript loader and dependency manager
75 lines (66 loc) • 2.27 kB
HTML
<html lang="en-us">
<head>
<meta http-equiv="Content-type" content="text/html; charset=utf-8">
<title>$script.js demo</title>
<style type="text/css">
body {
overflow: hidden;
text-align: center;
font-family: 'helvetica neue', helvetica, arial;
}
h1 {
font-weight: 300;
}
</style>
<script src="../src/script.js"></script>
<script type="text/javascript">
// usage
$script.ready('jquery', function() {
console.log('jquery is ready');
})
.ready('jquery', function() {
console.log('jquery is still ready');
})
.ready('yui', function() {
console.log('yui is ready');
})
.ready('anim', function() {
console.log('the animation lib is ready');
})
.ready(['jquery', 'anim'], function() {
console.log('jquery and animation are both ready');
// jQuery and YUI make love together
new YAHOO.util.ColorAnim($('<h1 id="test">boosh</h1>').appendTo('body'), {
color: {
from: '#ee0000',
to: '#76ee00'
},
fontSize: {
to: 300,
unit: 'px'
}
}, .7, YAHOO.util.Easing.bounceOut).animate();
})
$script('http://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.js', 'jquery');
// duplicate call to same lib. $script.js will not load it
$script('http://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.js', 'jqueryagain');
// also don't bother loading a file with the same id. bad juju may occur
$script('http://ajax.googleapis.com/ajax/libs/jquery/1.5.0/jquery.js', 'jquery');
$script('http://yui.yahooapis.com/2.8.2r1/build/yahoo-dom-event/yahoo-dom-event.js', 'yui', function() {
$script('http://yui.yahooapis.com/2.8.2r1/build/animation/animation-min.js', 'anim');
});
setTimeout(function() {
// test to make sure deferred 'ready' calls still work
$script.ready(['jquery', 'anim'], function() {
console.log('game is still on for jquery and anim');
})
.ready('yui', function() {
console.log('yui stand alone still works');
});
}, 2000);
</script>
</head>
<body>
</body>
</html>