Skip to content

Instantly share code, notes, and snippets.

@orbitbot
Created October 30, 2015 20:08
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save orbitbot/c3b579a4eb6a2ca7c7d3 to your computer and use it in GitHub Desktop.
Save orbitbot/c3b579a4eb6a2ca7c7d3 to your computer and use it in GitHub Desktop.
Autoload js script stored in localStorage
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Autoloader</title>
</head>
<body>
<script>
function onlyUnique(value, index, self) {
return self.indexOf(value) === index;
}
function storeUrl(url) {
urls = getUrls();
if (urls)
urls.push(url);
else
urls = [url];
localStorage.setItem('urls', JSON.stringify(urls.filter(onlyUnique)));
}
function getUrls() {
var urls = localStorage.getItem('urls');
return JSON.parse(urls);
}
function loadCode(url) {
console.log('load url ' + url);
var request = new XMLHttpRequest();
request.onreadystatechange = function() {
if (request.readyState === XMLHttpRequest.DONE && request.status === 200)
eval(request.responseText);
else
console.log('Request change', request.readyState, request.status);
}
request.open('GET', url);
request.send();
}
var urls = getUrls();
if (urls) {
urls.map(loadCode);
}
else {
storeUrl('https://code.jquery.com/jquery-2.1.4.min.js');
console.log('stored jquery url, reload page');
}
</script>
</body>
</html>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment