我想讓addthis小部件可供我的用戶使用,但我想延遲加載它,以便儘可能快地加載我的頁面。但是,通過腳本標記嘗試後,然後通過我的延遲加載方法,它似乎只能通過腳本標記工作。在混淆代碼中,我看到了一些看起來像依賴DOMContentLoaded事件的東西(至少在Firefox中)。延遲加載addthis腳本? (或延遲加載外部js內容取決於已觸發的事件)
由於DOMContentLoaded事件已經觸發,所以小部件無法正確呈現。該怎麼辦?
我可以只使用腳本標記(較慢)...或者我可以(通過跨瀏覽器方式)DOMContentLoaded(或等效)事件?我有一種感覺,這可能是不可能的B/C我相信(如jQuery)內容準備事件有多個測試,所以多個模擬事件將不得不發生。
儘管如此,這是一個有趣的問題b/c我已經看到一些小部件現在假設你通過靜態腳本標籤包含了他們的東西。如果他們編寫的代碼對於速度方面的開發人員更有用,那將是非常好的,但在那之前,有沒有解決方法?和/或我的任何假設是否錯誤?
編輯: 因爲這個問題的第一個答案似乎錯過了我的問題,我想澄清的情況。
這是關於一個特定的問題。我不在尋找另一個懶惰的加載腳本,或者檢查是否有一些依賴被加載腳本。 具體這個問題
- ,你不 擁有控制權,並可能會或可能不會 被混淆
- 延遲 外部部件的負載,直到他們 需要或至少外部部件交易,直到 一切基本上之後 已經加載包括其它遞延元件
- b /所述如何 的c中的窗口小部件是書面的,排除了 現有的,典型的懶加載 範式
雖然很深奧,我已經看到了一對夫婦的小部件發生 - 在Widget開發者認爲你只是願意在的底部在另一個腳本標籤扔頁。我希望能夠節省500-1000毫秒**,儘管雅虎,谷歌和亞馬遜的衆多研究表明它對用戶的體驗非常重要。
**我用錘頭和個人經驗測試表明,這將是我在這種情況下的節省。
這是一個外部的js部件。我無法控制內容。 – 2009-06-03 04:19:19
有幾個部分引用DOMContentLoaded事件,它調用匿名函數&似乎處於隱藏狀態的關閉狀態。這是混淆的代碼,所以儘管我試圖弄清楚他們在DOMContentLoaded事件上做了什麼,但這可能並不那麼容易。我正在考慮一種不同的方法 - 試圖找出它正在查找的事件並解僱它們,我想知道是否可能有一個通用解決方案 - 一些代碼在瀏覽器的「真實」事件之後觸發DOMContentLoaded事件已經開除或以其他方式觸發它。 – 2009-06-03 05:07:57
取出匿名函數並在腳本中給它們一個名字。 var loadFunction = function(){/ * whatever * /} 然後從checkAndLoad()調用那些函數 – 2009-06-03 05:16:58