2011-04-13 4 views
3

내가 않는 다음과 같은 코드가 있습니다자바 스크립트 배열 조작 : 다음을 수행하는 더 좋은 방법이 있습니까?

  1. 집어 텍스트 요소에서 페이지에
  2. 필터를 특정 요소 '\ n을'
  3. 분할에 대한이의 모든 요소를 ​​제거 배열이 공백 인 경우

예상보다 많은 시간이 소요될 것으로 보이며 배열의 공백으로 채워진 요소를 모두 제거하지 않습니다.

그냥 두 개의 배열을 하나로 결합한 다음 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); 
       } 
     }}]); 

답변

2

왜 HTML 페이지에 텍스트 배열로 스크립트가 있습니까?

서버에 .json 개의 파일을 저장했을 것입니다.

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

정적 일 필요가없는 경우 들어오는 URL을 기반으로 일부 라우팅 및 서버 json 파일을 설정하십시오.

+0

약간 다르지만 외부 JSON 파일의 아이디어가 마음에 들었습니다. 좋은 생각 ... 내 생각은 내 머리 속에서 겉으로보기에는 좋고 실제로는 끔찍한 것 같았다. –

관련 문제