2016-09-21 56 views
0

EXTJS 6,需要或用途 - 確定編程務實確定EXT JS 6 - 要求或使用了子文件

在工作中,我們使用EXT JS 6,我一直在負責「加速起來'。我已經完成了幾件事,並且已經實現了至少30%的速度提升。然而,當加載一個頁面/模塊/節(無論你想調用它),第一個下面的每個單獨的組件都加載異步。 這對頁面加載造成大約20秒的可測量延遲。

我相信這是因爲當我們從EXT JS 4遷移時,我們將所有的東西放在我們的類定義中。

requires: [ 
    'app.view.setup.thing.TabController', 
    'app.view.setup.thing.Panel', 
    'app.store.setup.combo.thingGroupIcons' 
], 

我在大量的文檔資料已經外觀和已經開始,我們應該使用「使用」定義程序的部分可以單獨加載到「屏幕上爲先」的東西的結論。

因此,例如,上面會成爲類似:

requires: [ 
    'app.view.setup.thing.Panel', 
], 
uses: [ 
    'app.view.setup.thing.TabController', 
    'app.store.setup.combo.thingGroupIcons' 
], 

程序可能有一個良好的500頁/段到它。可能有3000〜個文件。所以我的問題是(真的是兩倍)。

問題1:我怎樣才能務實地確定某些東西在我的「需要」可以/應該使用加載「用途」

問題2:我在正確的軌道上在所有?

圍繞EXT JS有一個非常敵對的社區,所以我在Stack上問這個問題,希望人們會更有幫助。今天我已經花了七個小時閱讀,下面是我認爲實際上有用的一些鏈接。

https://www.sencha.com/forum/archive/index.php/t-133191.html?s=8b90c637dd96fed53597cd029544d955 http://docs.sencha.com/extjs/6.0.0/classic/Ext.Class.html#cfg-requires

+0

順便說一下,關於整個'加速'的事情。你是否使用Sencha Cmd來編譯你的應用,並且你知道App Cache? HTTPS://docs.sencha。com/cmd/guides/microloader.html#microloader _-_ application_cache – pagep

+1

是的,我願意,是的。編譯後的版本要快得多(但速度還不夠快),並且緩存只會在當前問題之後進行不同的後期下載。 – TolMera

+0

您確定您使用的是內置副本嗎?如果您使用的是建立的副本,則不會發生這種情況:「第一個下面的每個組件都加載了異步。」 –

回答

1

要確定您可以通過uses加載哪些,你只能從「需要」部分移動到一切的「使用」部分,檢查什麼地方不對頭。

但是使用uses,您只能改善未編譯版本的加載時間,而不是cmd編譯版本的加載時間,其中所有依賴項都位於單個JavaScript文件中,而哪些應該是面向客戶的唯一版本。

當然,你總是可以像我老闆一樣做,並得到一些高薪顧問™(來自Sencha或靠近你的Sencha認可的店鋪)來檢查你的申請。他們的第一個結果正是我已經告訴他的:我們沒有可能進一步顯着提高我們Cmd編譯版本的加載速度。他們告訴我們,我們只剩下一個選項 - 我應該添加一個動畫啓動畫面,這會減少一半的加載時間。當然,如果您使用秒錶,但用戶在啓動應用程序時沒有秒錶...

+0

謝謝,這是一個非常好的答案:)我猜測,將所有東西都從'require'移動到'uses',然後運行'sencha app build production'會列出失敗,或者您認爲我將不得不測試每個模塊的功能手動(是啊,我們沒有單元測試: - /)?如果構建命令列出錯誤,我可以使用正則表達式來編寫一些東西,以幫助我將正確的東西放在正確的位置......即使這不會改變正在下載的文件的大小,它可能會** *讓JS運行用戶端更快一點(值得測試) – TolMera

+1

您必須手動測試。當構建依賴關係樹時,構建命令不關心**何時會調用依賴關係,並且錯誤只會在運行時顯示。 – Alexander

+0

謝謝你回答很多問題:)優秀的答案! – TolMera