在moodle中包含的.js文件中添加延迟属性

时间:2013-12-12 21:34:20

标签: moodle

我正在优化我的Moodle网站的性能,它显示加载页面的.js文件的高加载时间。这就是为什么我想在调用或包含javascript文件的页面中包含defer='defer'属性,如下所示。

if (!empty($CFG->cachejs) and !empty($CFG->jsrev) and $CFG->jsrev > 0 and substr($url, -3) === '.js') {
    if (empty($CFG->slasharguments)) {
        return new moodle_url($CFG->httpswwwroot.'/lib/javascript.php', array('rev'=>$CFG->jsrev, 'jsfile'=>$url));
    } else {
        $returnurl = new moodle_url($CFG->httpswwwroot.'/lib/javascript.php');
        $returnurl->set_slashargument('/'.$CFG->jsrev.$url);
        return $returnurl;
    }
} else {
    return new moodle_url($CFG->httpswwwroot.$url);
}

那么如何在此添加defer='defer'属性?请建议我。

1 个答案:

答案 0 :(得分:0)

有多个位置,其中javascript嵌入在Moodle页面中,最大的位置是YUI3库。

要添加延迟代码,请查看文件/lib/outputrequirementslib.php。确切的行号取决于您的Moodle版本。最棘手的是将它添加到static.js,因为这是在html_writer类中处理的。

请注意,标签应为“defer”,而不是“defer='defer'”,因为Moodle使用HTML5文档类型。

Moodle的装载顺序也很重要,因为它们构建它的方式。添加defer属性可能会破坏你的Moodle。