Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
!function() {
var doc = document,
htm = doc.documentElement,
lct = null, // last click target
nearest = function(elm, tag) {
while (elm && elm.nodeName != tag) {
elm = elm.parentNode;
}
return elm;
};
// Listeners for our most common interations
htm.onclick = function(e) {
e = e || window.event;
lct = e.target || e.srcElement;
var elem = nearest(lct, 'A') || htm,
href = elem.getAttribute('ajaxify') || elem.href;
switch (elem.rel) {
case 'dialog':
case 'dialog-post':
Bootloader.loadComponents('dialog', function() {
Dialog.bootstrap(href, null, elem.rel == 'dialog');
});
break;
case 'async':
case 'async-post':
Bootloader.loadComponents('async', function() {
AsyncRequest.bootstrap(href, elem);
});
break;
default:
return;
}
return false;
};
htm.onsubmit = function(e) {
e = e || window.event;
var elem = e.target || e.srcElement;
if (!elem || elem.nodeName != 'FORM' || !elem.getAttribute('ajaxify')) {
return;
}
Bootloader.loadComponents('dom-form', function() {
bootstrap_form(elem, lct);
});
return false;
};
// Remove the no JS class, if it is here
htm.className = htm.className.replace('no_js', '');
}();
@hmschreiner
Copy link

hmschreiner commented May 8, 2015

Nowadays, this code still being a good solution?

@AceMood
Copy link

AceMood commented Nov 17, 2015

I think load javascript dynamically is a key rule of performance optimization forever, it's never outdate.
The Web is absolutely a resource enhanced Web, more and more javascript and css could load in an single page as time past, and the usage of memory increased continuously. We can choose a point to reload the page one time, but before that point, partial refresh and load on demand is necessary.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment