正在导出Javascript类函数



我正在尝试将模块YSlow实现到我自己的项目中。我想使用的一个函数如下:

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

据我所知,YSlow在开头的代码中被分配到这里:

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

我想做的是导出这个类并能够使用这个函数。我通常只会说:

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

但是,当YSLOW处于初始状态时,我不确定如何正确地与registerRuleset()通信。如果我把sayHello()放在yslow.js中,我可以很好地使用它,但对于任何一个开头带有yslow的函数来说,它都不起作用。我曾尝试将YSLOW之前和之后的导出放入函数中,但没有成功。

所以我的问题是,我该如何绕过这个问题?就这一点而言,YSLOW.function()到底在做什么?它的重要性是什么?

谢谢!

我不熟悉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);

相关内容

  • 没有找到相关文章

最新更新