2013-12-12 55 views
0

我正在優化我的Moodle站點的性能,它顯示加載頁面的.js文件時的高加載時間。這就是爲什麼我想要在正在調用或包含JavaScript文件的頁面中包含defer='defer'屬性,如下所示。在moodle中包含的.js文件中添加延遲屬性

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'屬性呢?請建議我。

回答

0

有多個位置在JavaScript中嵌入Moodle頁面,最大的一個是YUI3庫。

要添加延期標籤,請查看文件/lib/outputrequirementslib.php。確切的行號取決於你的Moodle版本。最麻煩的是將其添加到static.js,因爲這是在html_writer類中處理的。

請注意,Moodle使用HTML5文檔類型時,標籤應該是「defer」而不是「defer='defer'」。

由於Moodle的構建方式,Moodle的加載順序也很重要。添加defer屬性可能會破壞你的Moodle。