2015-07-01 18 views
0

Я пытаюсь реализовать модуль YSlow в своем собственном проекте. Функция Я хочу использовать выглядит следующим образом:Экспорт функций класса Javascript

YSLOW.registerRuleset = function (ruleset) { 
    YSLOW.controller.addRuleset(ruleset); 
}; 

Из того, что я могу сказать, YSlow назначается здесь в коде в начале:

if (typeof YSLOW === 'undefined') { 
    YSLOW = {}; 
} 

То, что я хочу быть в состоянии сделать это экспортируйте этот класс и сможете использовать эту функцию. Я обычно просто положить:

exports.sayHello = function() { 
    return "Hello" 
}; 

Однако, я не уверен, как правильно общаться с registerRuleset(), когда YSlow находится в самом начале. Если я поставлю sayHello() в yslow.js, я могу использовать его в порядке, но для любой функции с YSLOW в начале это не работает. Я попытался поставить экспорт до и после YSLOW в функции, но не имел успеха.

Так что мой вопрос в том, как я могу обойти это? И в этом отношении, что такое YSLOW.функция() даже делает точно и в чем важность этого?

Спасибо!

ответ

0

Я не знаком с YSLOW, поэтому я не понимаю вашего запроса.

Если вы пытаетесь проверить, загружены ли объекты класса YSLOW, ниже код может помочь определить, загружен или не загружен. этот код будет продолжать опрос для объектов, которые будут готовы и доступны. Это будет опрошено в течение 20 миллисекунд (вы можете увеличить его до более).

Его вид взлома, вы можете проводить опрос для объектов, загружен ли он и готов к использованию.

function checkLoaded() { 
     if (YSLOW && YSLOW.controller && YSLOW.controller.addRuleset) { 
      return true; 
     } 
     return false; 
    } 

    /* Start: polling to check if YSLOW Objects are ready */ 
    var timeout = Date.now() + 10000, 
     startTime = Date.now(); 
    var intervalID = window.setInterval(function() { 
     if (checkLoaded()) { 
      console.log("GOT Ready at: ", Date.now() - startTime + "ms"); 
      window.clearInterval(intervalID); 
      initLoad();//do your stuffs after loading here. 
     } else if (Date.now() > timeout) { 
      console.log("Not loaded, kill the polling."); 
      window.clearInterval(intervalID); 
      failedLoad(); //do your stuff for not loaded here 
     } 
    }, 20); 
Смежные вопросы