JSFiddle - React, Tailwind, and code Playground
HTML
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script>
<ul>
<li>React: <span id="react"></span></li>
<li>jQuery: <span id="jquery"></span></li>
<li>Mootools: <span id="mootools"></span></li>
<li>Total: <strong id="total">0</strong>ms using $script.js</li>
</ul>
JavaScript
// dropet START
var doc = document
, head = doc.getElementsByTagName('head')[0]
, push = 'push'
, readyState = 'readyState'
, onreadystatechange = 'onreadystatechange'
, scripts = {}
, urlArgs;
function create(path, fn) {
var el = doc.createElement('script'), loaded
el.onload = el.onerror = el[onreadystatechange] = function () {
if ((el[readyState] && !(/^c|loade/.test(el[readyState]))) || loaded) return;
el.onload = el[onreadystatechange] = null
loaded = 1
scripts[path] = 2
fn()
}
el.async = 1
el.src = urlArgs ? path + (path.indexOf('?') === -1 ? '?' : '&') + urlArgs : path;
head.insertBefore(el, head.lastChild)
}
var dropletScriptLoader = function (scripts) {
return $.when.apply($, scripts.map(function (script) {
var deferred = $.Deferred();
create(script, function () {
deferred.resolve();
});
return deferred.promise();
}))
};
// dropet END
var start = (+new Date),
onloadTime = 0,
libsReady = 0;
window.onload = function() {
document.getElementById('window-ms').innerHTML = (+new Date) - start;
};
dropletScriptLoader([
'http://ded.github.com/morpheus/morpheus.js?' + start,
'https://cdnjs.cloudflare.com/ajax/libs/mootools/1.6.0/mootools-core.min.js?' + start,
'https://unpkg.com/react@15.3.2/dist/react.min.js?' + start,
'https://unpkg.com/react@15.3.2/dist/react.min-faiiiiiiiiiiiiiiiiiiiiiiiiiiiilllllllllllll.js?' + start,
])
.always(function () {
$('#react').html(typeof React !== 'undefined' ? '✓' : '')
$('#jquery').html('✓');
document.id('mootools').innerHTML = '✓';
document.getElementById('total').innerHTML = (+new Date) - start;
});