2015-10-24 29 views
4

我正在尋找一種方法來加快科爾多瓦上的插件加載,所以我可以最早顯示我的用戶界面(用戶界面並沒有嚴格需要所有插件發射)。修改科爾多瓦插件加載行爲,以加快加載時間

我迄今爲止嘗試:

  • 按文檔,我曾嘗試加入:<param name="onload" value="false" />;爲我加載的每個功能。沒有幫助。 (Related query on SO

  • 已將應用程序初始化代碼移出deviceReady(初始化不需要Cordova特定位)。

我如何得出結論:插件是瓶頸?如下:

  • 我卸載了應用程序所需的所有插件(其中23個!),加載時間被削減了2.5到3秒。所以我相信這是一個瓶頸。

  • 此外,我刪除了所有的JS和CSS,包括cordova.js並加載了一個空白的HTML頁面。使用插件和無插件。差異是巨大的。

總的來說問題是,直到所有的插件的本地代碼沒有運行,WebView本身不會出現。更多的插件,更多的時間是可見的。有什麼辦法可以讓Cordova立即加載WebView並讓JS加載,同時它在後臺初始化插件,並在需要時觸發deviceReady?我可以在稍後的時間做科爾多瓦特定的事情。

相關:

  1. Showing webView in Cordova before API has loaded
  2. phonegap plugin onload=false has no effect

回答

2

我同情你的目標,但你不能從一個turnip得到牛奶。

隨着使用onload=false的想法,<feature (...)>已被棄用。按照底部的鏈接,並閱讀#12。

在另一個問題上,很明顯,提問的人並不知道這是不可能的。

所有Cordova/Phonegap平臺的主UI查看器是一個名爲WebView的庫(在Android中,在其他平臺上類似,see)所有這些庫都有一個共同點,不加載,Javascript或其他工具這將使它成爲一個完整的網頁瀏覽器。因此,Javascript必須啓用(通過Cordova)並加載(通過操作系統)。直到HTML文檔的所有其他部分都被識別(但可能未加載),纔會發生這種情況;這包括CSS,字體,圖像和圖標(如果需要)。

但是,在後面的項目中,例如CSS,時間可以被組合 - 如果CSS被優化。很多時候開發人員不會做這種優化,因爲需要提供一個里程碑(他們通常永遠不會返回來修復它)。

回到插件,確實需要一些時間來加載插件,但通常不清楚爲什麼插件需要很長時間。加載後的插件必須做一些*初始化,但需要多長時間取決於插件。例如,地理定位(GPS)插件在可用的讀數可用之前可能需要長達10秒。

  • 加載時間試圖調整加載時間將很難證明是有用的,因爲無論插件,該插件需要加載它需要什麼。
  • 初始時間試圖調整插件的內部是你應該與作者討論。

此外,我可以推測爲什麼一些插件需要這麼長時間,但我不知道你在使用哪一個;所以這將是徒勞的努力。

最後,有*也許*一些方法來減少之間的時間,推出用戶準備,但我聽說沒有,我已經看到了沒有。這包括我對Cordova,Phonegap,Android和Apple iOS文檔的閱讀。

,而你正在開發
Top Mistakes by Developers new to Cordova/Phonegap

+0

對不起,我已經忘了告訴人們這個文件可以證明是有用的。 ** iOS9 [不正式支持](https://github.com/jessemonroy650/top-phonegap-mistakes/blob/master/current-tripping-points.md)** – JesseMonroy650

相關問題