我試圖將我的長JavaScript代碼分割成不同的庫。Javascript通過代碼添加js庫
我試圖寫一個包裝腳本,將加載我所有的庫:
//this file loads all the scripts to the page
$(document).ready(function(){
var fileName = getCurrentFileName();
loadScript("scripts/pico/popups.js");
loadScript("scripts/pico/effects.js");
loadScript("scripts/pico/pico.js");
loadScript("scripts/pico/facebook.js");
if (fileName != null)
loadScript("script/pico/" + fileName + ".js");
});
/**
* Load a script to the body element
* @param name the name of script file.js
*/
function loadScript(name){
// Adding the script tag to the body
var body = document.getElementsByTagName('body')[0];
var script = document.createElement('script');
script.type = 'text/javascript';
script.src = name;
// Fire the loading
body.appendChild(script);
}
/**
* Get the current HTML file name
* @returns {*} the name of the file or null
*/
function getCurrentFileName(){
try {
var fileName;
fileName = document.location.pathname.match(/[^\/]+$/)[0];
return fileName.split('.')[0];
}
catch (e){
return null;
}
}
,但我認爲facebook.js裝載pico.js之前完成加載 - 這些都是從微微功能。 js裏面的facebook.js ..
我怎樣才能確保圖書館將按照我輸入的順序加載?
您需要使用onreadystatechange處理程序來確保它們按所需順序加載。 –
http://stackoverflow.com/a/21246366/1959948 – Dalorzo
http://code.google.com/p/minify/根據需要合併,縮小和緩存JavaScript和CSS文件以加快頁面加載速度。 – MrUpsidown