2012-06-20 25 views
4

我正在考慮將Dart用於框架,我打算寫。我發現的其中一個問題是,我無法延遲加載我的類或執行一些加載更多代碼的替代方法。我希望在用戶瀏覽到網站的不同區域而不用重新加載頁面((ab)使用歷史API)時動態加載更多的代碼,但是從我可以告訴的我將不得不預先加載所有代碼。這是行不通的,因爲它會導致可怕的首次加載時間,每次我更改任何代碼時,用戶將不得不重新下載網站的所有代碼。如何在飛鏢中使用Lasily/Dynamicaly加載類?

在javascript中執行此操作的程序的一個示例是SyntaxHighlighter。只有在需要時纔可以加載畫筆。

在dart中,您可以加載隔離並返回一些序列化的版本來完成語法突出顯示,但對於我的應用程序,我需要事件偵聽器和處理程序以及大量的DOM和CSS操作,所以我沒有辦法我將編寫一個自定義API來完成所有這些與原始類型。

我想知道是否有一種方法可以在Dart中實現這一點,或者在作品中有什麼可以讓這項技術得以實施的方法。 (或者返回到JavaScript)。

謝謝,凱文

+1

這裏有一些關於延遲加載的鏈接http://blog.sethladd.com/2013/04/lazy-load-libraries-in-dart.html – Phil

回答

2

據我所知是沒有辦法的飛行動態加載代碼到一個已經運行的飛鏢程序(雖然當反射在DART到達這可能會改變)。

你可以加載一個不同的飛鏢計劃,然後使用postMessage與它溝通,但是接觸有點矯枉過正。也許你應該爲它打開一個錯誤。我們也有一個大的Dart代碼庫,可以肯定地使用像GWT代碼分割這樣的東西來加快它的速度。

+1

我會檢查他們的錯誤跟蹤器,也許提交一個功能請求,我會報告我的發現。 –

+2

我在https://code.google.com/p/dart/issues/detail?id=3819打開了功能請求。 –