JavaScript腳本文件都放在頁面底部加載,可以有效地加快頁面的加載速度。
但是,php控制器一般這樣寫:
復制代碼 代碼如下:
$this->load->view($HEADER);
$this->load->view($MENU);
$this->load->view($VIEW_SHOW, $data);
$this->load->view($FOOTER);
$FOOTER是個共用模版,用於加載js及css文件。
$VIEW_SHOW作為主模版,則可能要單獨寫些js代碼,這些代碼通常需要使用公共文件的資源的話,把js寫到$FOOTER的後面就不方便了,jQuery的$(document).ready又用不了。這時候,用window.onload就可以了,如下:
復制代碼 代碼如下:
window.onload = function() {
(function($) {
function test() {alert(123);}
//或寫些基於jQuery的綁定什麼的
})(jQuery)
};
但如果你想從window.onload外調用裡面的函數,比如你想在這個窗口的子iframe中調用parent.test()是不會有結果的。
這時,變通一下,把函數作全局變量就可以了。
復制代碼 代碼如下:
var test; // 全局作用域的聲明
window.onload = function() {
(function($) {
test = function() {alert(123);};
//或寫些基於jQuery的綁定什麼的
})(jQuery)
};
只在需要時,才把私有的函數改成全局的,是更安全的做法。