簡體   English   中英

為什么Javascript在iPhone上運行得這么慢?

[英]Why does Javascript run so slow on iPhone?

我一直在研究為iPhone編寫應用程序。 我非常喜歡PhoneGap的外觀,它基本上允許您在應用程序中包含一個網頁。 我的技能主要是HTML / Javascript,因此這個工具可以讓我充分利用我的技能,而無需花費很多時間學習如何為iPhone本地編寫應用程序。

我一直在iPhone上為Javascript做一些測試,一些看似簡單的例子運行速度很慢。 真的很慢。 不幸的是,這對我的任務來說是個大問題!

有什么工作嗎? 如果我想做任何有趣的事情,我將不得不寫一個“適當的”應用程序?

解釋為什么Apple似乎創建了如此糟糕的Javascript實現也很有趣(可能賺更多的錢?更少的網絡應用程序=商店中更多的應用程序?)

參考

http://ajaxian.com/archives/ipad-javascript-shockingly-slow

Javascript並不是特別慢,但DOM非常慢。
我認為它與桌面瀏覽器相同,但放大了。
如果無法優化,我會首先檢查所有DOM操作。

另一種選擇是使用模板引擎。
主要的DOM操作是通過innerHTML注入完成的,即使在移動設備上也是如此。

我們已經構建了我們的Web應用程序的移動版本,我們使用PURE (我們創建的開源JS庫)來呈現來自JSON數據的HTML,並且它非常敏感。

我們采用HTML5方式(不是本機方式),但我認為生成HTML可以在PhoneGap中包裝時以相同的方式完成。

我認為Apple沒有為Mobile Safari創建任何特殊的Javascript實現。 可能與桌面Safari相同或非常相似。

這些設備很小並且具有嚴格的功率限制,因此CPU很慢。

顯然,由於安全功能,iOS不會對JavaScript進行JIT編譯(與Android不同): http//daringfireball.net/linked/2010/07/22/android-ios-js-benchmarks

關於DOM訪問的好處是問題:我不知道這些基准測試多少測試DOM操作。

@Rudiger:只是一個想法 - 自8年前以來台式計算機速度的許多改進部分是通過使用多個處理器來實現的。 Javascript是單線程的,因此可能無法利用這樣的多個處理器。 是的,我知道瀏覽器可以利用它,而將其他處理器放在其他處理器上可以為Javascript線程提供更多的CPU能力,但我有一個應用程序,主要是原始的Javscript內部處理,其中主要的是正在進行的是搜索和數組操作。

那么,在將桌面電源與移動處理器電源進行比較時,為了我的目的,可能放慢速度不會那么糟糕? 我目前在Safari上使用單處理器以六年歷史的筆記本電腦上以非常可接受的速度運行。 所以我認為iPhone或iPad上的Safari可能不會那么糟糕。 你認為這是合理的嗎?

實際上,我認為Apple盡可能地將javascript保留在Iphone之外有着既得利益......他們似乎想要通過他們的應用商店通過要求本地運行來管理事物..我很好奇,如果javascript也很慢Android手機,(我之前從未使用過一款)..如果它不是那么我覺得有點奇怪的是,Iphone會慢慢使用javascript,無論如何,它們已經失去了市場份額並將不得不解決問題在某些方面,我確信,我認為人們正在抓住蘋果的游戲和白痴試圖微觀管理一切,因為移動設備領域出現了更多合法的替代品。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM