我想等到我的所有requireJS模塊完成加載之後纔開始事件。 是否有一個事件或者一種方法來監聽我的所有requireJS模塊來完成加載?什麼時候requireJS完成加載所有模塊
細節:
我想自定義維度添加到我的谷歌Analytics(分析),然後發送網頁瀏覽。如果我設置了相同的尺寸,但在我的一些requireJS模塊中,我希望在頁面視圖之前更改尺寸,這在所有頁面上都很容易實現。
我已經得到了它的每一個頁面上運行我的模板的javascript,我想要它做的:
LISTEN_FOR_MODULES_TO_LOAD(function() {
$(document).trigger('set-your-analytics-dimensions-yall');
ga('send', 'pageview');
});
然後在我的一些子頁面的我已經有了模塊做:
$(document).on('set-your-analytics-dimensions-yall', function() {
ga('set', 'dimension');
});
我想要的流量是:
- 聽我的所有模塊完成加載
- 向其他模塊設置它們的尺寸和其他值
- 集瀏覽量
的問題是,我沒有辦法聽我所有的requirejs模塊加載。
事情我已經考慮:
DOM就緒這不起作用,因爲DOM已準備就緒之前或所有的JavaScript模塊被加載後觸發。
window.onload這是不可靠的,可以多次觸發。如果圖像在10分鐘後添加到頁面,則可以再次觸發。如果外部資源永不加載,這個事件永遠不會觸發。
有沒有我錯過的選項?或者我完全錯過了requireJS?
你怎麼可能知道什麼時候所有的模塊已經加載,模塊能夠在運行時包含其他模塊? – ssube 2015-02-24 19:35:36
創建一個需要配置中每個其他模塊的模塊。當該模塊加載時,您會知道其他所有內容都已完成加載。 – idbehold 2015-02-24 22:07:39
我認爲Google Analytics是異步加載。有一個名爲'async.js'的需求插件,我用它來加載谷歌地圖API。我不需要其他任何東西,只需將代碼放在'define'塊中,它會在google API加載時執行。希望這能解決你的問題,因爲我不太清楚GA如何加載你的代碼。 – 2015-02-27 13:39:19