我有一個問題,當我啓動我的混合應用程序。加載第一頁需要很長時間。 〜40秒。提高性能啓動混合應用程序
我GWT,谷歌應用程序引擎和RequestFactories工作。我發現,應用程序向服務器發出了幾個請求(〜10個請求)。
現在我想知道,我該如何提高盯着我的應用程序的性能。
- 將所有請求分組到一個請求中,該請求通過單個請求傳遞所有數據。 (〜300kb數據)
- 創建一個啓動頁面,請求和數據量較低。 (〜50kb數據)
- 更好的主意?
我更喜歡,我可以保持當前的啓動頁面。你能分享你的體驗嗎?
我有一個問題,當我啓動我的混合應用程序。加載第一頁需要很長時間。 〜40秒。提高性能啓動混合應用程序
我GWT,谷歌應用程序引擎和RequestFactories工作。我發現,應用程序向服務器發出了幾個請求(〜10個請求)。
現在我想知道,我該如何提高盯着我的應用程序的性能。
我更喜歡,我可以保持當前的啓動頁面。你能分享你的體驗嗎?
您已經指出了縮短啓動時間的兩種主要方法。
1.-減少請求:使用RF,如果您共享相同的服務實例並只調用一次.fire()方法,則可以將所有請求分組到一個請求中。爲圖片,CSS和其他資源使用Bundle,以便在相同的請求中下載它們。
2.-減小js大小:使用GWT.runAsync()將代碼拆分爲塊。因此,第一塊代碼可能是用戶啓動應用程序的最低限度內容,直到用戶與其進行交互爲止。你可以使用gwt編譯報告來查看你的代碼是否更大。您可以在gwt-2.5中使用新的閉包編譯器來減少和優化最終的js。
3.-您必須檢查的另一件事是您的web服務器配置發送適當的標題,以便瀏覽器緩存gwt片段,以及您應該檢查它是否在發送到客戶端之前壓縮文件。你可以讓gwt編譯器預先壓縮這些js片段。
4.-對於連續加載,我的意思是用戶再次進入您的應用程序,考慮使用localstorage來緩存某些不會改變的事情,而不是再次請求它們。配置你的HTML5Manifest,如果你使用的是mgwt,那麼它非常容易,因爲它們包含一個鏈接器來在編譯時生成清單。
5.-考慮使用輕量級小部件和框架,而不是沉重的小部件(js集合,元素,gquery,mgwt等)。
我有幾個建議:在在啓動一個請求改變很少
你是否介紹了你的應用?由於您使用的是App Engine,因此您的新實例可能會面臨冷啓動時間,這與您的請求和數據傳輸無關。 –
是的,這不是問題。無論如何感謝您的建議。 – Sam
您可以在App Engine日誌中看到每個請求需要多長時間。然後你可以看到問題出在哪裏。即使對於10個請求和300kB的數據,40秒也是如此。 –