網(wǎng)頁代碼塊如下:...<script src="./js/main.js"></script><script>
try { window.RenderModel = {{ data|safe }};
} catch (e) {
}</script>...后面這段內(nèi)嵌代碼是在頁面加載是由后端(django)補全,傳進來一些重要的參數(shù)。然后,我的main.js里有這樣一個變量:var hasServer = typeof (window.RenderModel) !== 'undefined'這個變量通過判斷window.RenderModel是否存在來檢測當前是否有服務器環(huán)境?,F(xiàn)在有一個小問題,雖然說可以解決,但是不明白其中的原理,所以請教一下各位高手。當hasServer這個變量在main.js里直接聲明時,無論是否在服務器環(huán)境,window.RenderModel都被檢測為undefined,因為main.js在內(nèi)嵌代碼前面執(zhí)行,這一點是很顯然的。但是,如果我將hasServer的聲明放置在一個$(function())中,如這樣:$(function() { var hasServer = typeof (window.RenderModel) !== 'undefined'
...
});這個時候hasServer就可以正常判斷`window.RenderModel了,產(chǎn)生這種區(qū)別的原因是什么?
jQuery里的$(function())為什么會改變執(zhí)行順序?
紅糖糍粑
2018-09-13 09:06:57