3

我有以下代码:

  1. 从页面上的元素中获取文本
  2. 特定元素的过滤器
  3. 在 '\n' 上拆分
  4. 删除数组中所有空白元素

这似乎比我想要的要多一点时间,并且不会像您预期的那样删除数组中所有填充空格的元素。

仅供参考,然后我将两个数组合并为一个,并使用 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);
                }
        }}]);
4

1 回答 1

2

为什么将脚本作为文本数组放在 html 页面中?

我会将它们作为.json文件存储在服务器上。

$.when($.getJSON("url/script.json"), $.getJSON("url/stylesheet.json")).then(function(script, style) {
    var arr = ...; // combine script & style. 
    yepnope(...);
});

如果您不希望它们是静态的,则根据传入的 URL 设置一些路由和服务器 json 文件。

于 2011-04-13T15:23:56.243 回答