缓存javascript失败,因为使用了外部javascript

Cache javascript failed, because of the use of external javascript

本文关键字:javascript 外部 因为 失败 缓存      更新时间:2023-09-26

我已经使用YSlow来检查我的web的加载速度。根据规则,最好有一个大的外部javascript,而不是多个外部java脚本。规则中写道,使用大量外部javascript会导致大量http请求,这是不好的。

我使用的是CKEditor,我想将它与其他java脚本组合成一个大的外部javascript。但是,每次我加载它时,总是会出现错误。看完代码后,我想我知道为什么会发生这种情况。

if ( CKEDITOR.loader )
CKEDITOR.loader.load( 'core/ckeditor' );
else
{
    // Set the script name to be loaded by the loader.
    CKEDITOR._autoLoad = 'core/ckeditor';
    // Include the loader script.
    if ( document.body && (!document.readyState || document.readyState == 'complete') )
    {
        var script = document.createElement( 'script' );
        script.type = 'text/javascript';
        script.src = CKEDITOR.getUrl( '_source/core/loader.js' );
        document.body.appendChild( script );
    }
    else
    {
        document.write(
        '<script type="text/javascript" src="' + CKEDITOR.getUrl( '_source/core/loader.js' ) + '"></script>' );
    }
 }

CK编辑器似乎加载了其他具有相对位置的外部javascript。将脚本移动到其他文件中肯定会导致错误。

所以,我的问题是:这方面有什么一般性的工作吗?我的意思是,可能是其他脚本有这样的行为(不仅仅是CK编辑器)。

编辑:我认为使用head.js(http://headjs.com/)是这里的最佳选项

当尝试同时动态加载所有JavaScripts时,通常会遇到依赖性问题或库冲突问题。

示例:依赖性问题-在加载jQuery之前需要一个需要jQuery的文件。冲突问题-在处理大规模产品时,您可能会遇到冲突的库。例如,加载两个具有相同库名称但功能不同的文件。

如果你真的看到了很多速度减慢,并且想将所有JS文件组合在文件组合代码中,请设置依赖项。这方面的一个简化示例是创建一个库数组,这些库在任何主要JS片段之前加载。

希望这有助于解决您的问题!

好吧,我不知道你使用的是哪种服务器语言,但如果是PHP,我建议你尝试Smart优化器来解决连接/缩小问题。

使用它,你只需按照自己的意愿添加js,它就会处理它们。现在,我正在与YepNope一起使用它,我相信它也能与HeadJS一起使用。