我已經使用jQuery mobile構建了一個應用程序。除了不同Android設備之間的一些兼容性問題,我在Android系統上遇到的性能極差。因爲即使從jquerymobile.com乾淨的模板工作緩慢,我已經決定,也許刪除jQuery的不必要的部分將加快一點。但有沒有人試過它?它甚至有可能嗎?jQMobile依賴jQuery有多強烈?
回答
沒有jQuery本身就不可能運行jQuery Mobile。 (對於那些可能來到這裏但不知道的人)
您可以嘗試縮小JQ和JQM的大小。 不幸的是,我不認爲有很多要從jQuery中刪除。我會給它陽極想法和編輯;)
但是你確定可以「清理」jQuery Mobile,因爲它由小部件組成。從github獲取JQM,閱讀「編譯」,你就知道該怎麼做。 我打算做確切的事情,所以我很確定它可以完成。 如果您不使用選擇框,您可以從清單文件中刪除該小部件,並且在其making
之後,其CSS和代碼不應進入構建。 因此,如果您不使用任何表單元素,可摺疊列表視圖等,那麼您可以輕鬆地將JQM縮小到(我的猜測)大約一半的大小,並且基礎仍然可以工作。
[編輯]
可能jQuery的萎縮將很難,但你可以嘗試刪除:
- 新遞延AJAX處理(如果它不是太深集成)
- 動畫
- $ .css(可能,我不確定JQM是否使用它,但它是一大塊代碼,你可以在沒有它的情況下處理)
完成整理的最佳方法是用alert('damnit!')
替換您認爲不需要的功能的主體,以查看您是否確實不需要它;) 爲了確保它仍然正常工作並且穩定您應該只替換綁定到名稱的函數。儘量不要替換或刪除任何返回函數的閉包或函數。
然後在您的代碼被測試之後執行以始終正常工作。重複測試後搞亂J *
嗯,我在指望刪除一些jquery元素本身。事實上,例如jquery.com使用19或29%的jquery從我記得:)仍然感謝提示。 – voxoft 2011-05-31 08:54:29
看我的編輯。另外 - 請注意,大多數jQuery的代碼不在暴露的函數中。幾乎一半是嘶嘶聲選擇器引擎(你不會刪除它),並且能夠使用JQM,你應該保持所有選擇器,遍歷,ajax(以及誰知道還有什麼)完好無損。 (或缺乏一些沒有使用的公共方法,但他們通常需要多達10行無壓縮) – naugtur 2011-05-31 09:36:00
是啊,我已經多次瀏覽過jq代碼,所以我對如何一起工作有一些瞭解。 – voxoft 2011-05-31 10:15:04
我認爲真正的問題不是關於Javascript。這是由JQuery Mobile添加的HTML和CSS引起的。 JQuery Mobile會將div包裝器和CSS添加到原始HTML中。導致HTML臃腫與額外的div和CSS減慢性能。
你可以嘗試一個已經呈現的網頁,如果沒有jQuery和jQMobile javascript在iphone上。當您快速滾動時,它仍然很慢並閃爍。另一個框架iUI http://code.google.com/p/iui/在長列表上運行得更好,因爲html代碼和CSS更簡單。或者,你可以不使用CSS最簡單的長長的名單進行比較:
<ul>
<li> 1 </li>
<li> 2 </li>
...
<li> 500 </li>
</ul>
是的,這更接近正確的答案。壓縮文件下載並不會改善滾動和其他問題w jQuery Mobile – 2012-01-27 02:24:16
我最近測試了很多使用jQuery和jQuery Mobile和我都沒有注意到我的ipad2的任何問題。我懷疑有很多這將歸結爲你想要支持過時的硬件多少。移動領域正在快速發展,我預測它將會像90年代後期那樣,當跨瀏覽器支持(甚至不提及支持多屏幕分辨率的有限選項)需要大量腳本和基於用戶的重定向代理檢測。
- 1. scipy優化最小化:hess_inv強烈依賴於初始猜測
- 2. 強烈鍵入@ User.Identity
- 3. Backbone.js對jQuery有很強的依賴性嗎?
- 4. 依賴注入有多遠?
- 5. jQuery的依賴
- 6. 多值依賴
- 7. WeakHashMap和強烈參考值
- 8. jQuery驗證依賴
- 9. 刪除jQuery依賴
- 10. jQuery的依賴性
- 11. 角2:擁有多一個依賴
- 12. Maven的強制更新快照依賴
- 13. build.sbt中的強制依賴更新
- 14. 一個變量更新強制依賴
- 15. jquery驗證依賴字段
- 16. jquery依賴性驗證
- 17. 依賴注入 - 當你有很多依賴關係時該怎麼辦?
- 18. 多值的依賴關係?
- 19. 失蹤多perl的依賴
- 20. Maven依賴vs多模塊?
- 21. 依賴多值設置包
- 22. 通過依賴於多年
- 23. 如何強制依賴項目安裝依賴項中使用的nuget包?
- 24. SQL 2005強制表重命名,具有依賴關係
- 25. Netty eclipse「沒有強制的外部依賴」?導入錯誤
- 26. 強制Intellij IDEA重讀所有maven依賴關係
- 27. 強烈的引用(目標-C)
- 28. 如何給subsonic.core.dll強烈的名字
- 29. 我如何強烈引用.exe文件?
- 30. 如果強烈鍵入LINQ投影
您的假設是有一些代碼行尚未執行,它們會導致性能問題? – 2011-05-31 08:17:55
nope。移動設備的JavaScript緩存數量有限。對於iPhone 3G它大約是28kb。 jquery最小化超過這個尺寸本身3倍。加上jqm,樣式和我的代碼,它提供了〜180kb的數據。這是我的假設:) – voxoft 2011-05-31 08:21:24