我有以下代码:
这似乎比我想要的时间多一点,并没有像你期望的那样删除阵列中所有空格填充的元素。
仅供参考我然后将两个数组合并为一个并使用YepNope加载脚本和样式。这个过程需要大约1.5秒,这对用户来说真的很长。
如何提高速度?
var $containerHtml = $(html);
// Add the scripts
scriptArray = $.grep($containerHtml.filter('#includeScripts').text().split('\n'), function (element, index) {
return element !== "" && element !== " ";
});
// Add the styles
styleArray = $.grep($containerHtml.filter('#includeStylesheets').text().split('\n'), function (element, index) {
return element !== "" && element !== " ";
});
// Combine the two arrays into 1
combinedArrays = scriptArray.concat(styleArray);
// Load the scripts and styles
yepnope([{
load: combinedArrays,
callback: function (url, result, key) {
if (window.console && window.console.firebug) {
console.log("Loaded " + url);
}
}}]);
答案 0 :(得分:2)
为什么在html页面中将脚本作为文本数组?
我会将它们作为.json
文件存储在服务器上。
$.when($.getJSON("url/script.json"), $.getJSON("url/stylesheet.json")).then(function(script, style) {
var arr = ...; // combine script & style.
yepnope(...);
});
如果您不希望它们是静态的,请根据传入的URL设置一些路由和服务器json文件。