我知道互聯網上有很多這些問題,但我已經嘗試了所有的解決方案(所有this question的答案),而且都沒有工作。PhoneGap + jQuery Mobile =慢點擊響應時間
當我在我的PC瀏覽器中運行該網站時,一切都很好,但只要我在電話上部署,響應時間非常緩慢。
我試過使用FastClick,將hoverDelay設置爲0,並綁定我自己的事件,但結果是一樣的。
正在使用Android 4.1。希望除了我所嘗試過的任何幫助。
我知道互聯網上有很多這些問題,但我已經嘗試了所有的解決方案(所有this question的答案),而且都沒有工作。PhoneGap + jQuery Mobile =慢點擊響應時間
當我在我的PC瀏覽器中運行該網站時,一切都很好,但只要我在電話上部署,響應時間非常緩慢。
我試過使用FastClick,將hoverDelay設置爲0,並綁定我自己的事件,但結果是一樣的。
正在使用Android 4.1。希望除了我所嘗試過的任何幫助。
要加快JQM,您必須關閉任何轉換。
它很糟糕,但JQM轉換對移動設備來說太慢了,即使在iOS上也是如此。我們只能等待幾年,直到硬件變得更快,我懷疑。儘管JQM團隊試圖在1.2中提高性能,如果沒有我的應用程序感覺呆滯,我仍然無法使用轉換。
我總是使用這些設置來獲得jQuery手機的最佳性能。
$.mobile.defaultPageTransition = 'none'
$.mobile.defaultDialogTransition = 'none'
$.mobile.buttonMarkup.hoverDelay = 0
同樣,如果你正在寫任何JavaScript,不綁定到任何「點擊」事件。移動設備上的點擊速度太慢,因爲它在事件觸發之前有300毫秒的延遲。
由於您使用的是JQM,因此您可以使用自己的單擊事件vclick
代替(該引擎正在使用touchstart
和touchend
事件)。
如果在此之後它仍然非常慢,您可能需要檢查點擊事件中實際發生的情況 - 可能您的代碼沒有儘可能優化。
轉換與實際啓動之前發生的事情有什麼關係?由於轉換本身在我的手機上完美無缺地工作,所以在轉換開始之前的延遲*使我感到不安。除此之外,我還沒有任何JS,除了一個自定義的加載屏幕,一旦加載Cordova和JQM就會執行'changePage',這就是它。我會嘗試禁用轉換並回來反饋。謝謝! –
不,很抱歉,沒有任何變化,仍然是滯後。我甚至嘗試改變JQM核心以用0代替hoverDelay,但仍然沒有任何結果。 –
@EduardLuca在這一點上,我會說你需要弄清楚,如果它是你的頁面中導致緩慢的內容。有時如果DOM在JQM應用程序中變得太大,它可能會顯得很慢。你的網頁看起來是什麼樣的,哪一點需要時間太長? – asgeo1
如果您想爲移動應用程序解決此問題,最好使用點擊事件,而不是點擊事件。
這段代碼爲我工作
var ua = navigator.userAgent,
event = (ua.match(/iPad|Android/i)) ? "touchstart" : "click";
$("button,a").bind(event, function()
{
$(this).trigger('click');
});
作爲參考,這裏是一個很好的JQM性能優化列表:http://blog.safaribooksonline.com/2012/07/20/jquery-mobile-performance-improvement/ – Hope4You