La meilleure solution pour le temps de chargement de votre navigateur serait d'utiliser un script côté serveur pour les réunir en un seul gros fichier .js. Assurez-vous de gzip/minifier la version finale. Une seule requête - agréable et compacte.
Alternativement, vous pouvez utiliser DOM pour créer un fichier <script>
et définir la propriété src sur celle-ci, puis l'ajouter à la balise <head>
. Si vous devez attendre le chargement de cette fonctionnalité, vous pouvez faire en sorte que le reste de votre fichier javascript soit appelé à partir de la balise load
sur cette balise script.
Cette fonction est basée sur la fonctionnalité de jQuery $.getScript()
function loadScript(src, f) {
var head = document.getElementsByTagName("head")[0];
var script = document.createElement("script");
script.src = src;
var done = false;
script.onload = script.onreadystatechange = function() {
// attach to both events for cross browser finish detection:
if ( !done && (!this.readyState ||
this.readyState == "loaded" || this.readyState == "complete") ) {
done = true;
if (typeof f == 'function') f();
// cleans up a little memory:
script.onload = script.onreadystatechange = null;
head.removeChild(script);
}
};
head.appendChild(script);
}
// example:
loadScript('/some-other-script.js', function() {
alert('finished loading');
finishSetup();
});
0 votes
Je viens de créer un plugin Grunt pour répondre à peu près à la même exigence - il n'inclut que les fonctions qui sont utilisées dans votre application principale : github.com/mr-moon/grunt-contrib-resolve