与PhoneGap桌面相比,phonegap / cordova应用程序速度较慢

时间:2015-11-15 19:14:15

标签: android jquery performance cordova phonegap-build

最近我刚开始使用phonegap / cordova构建我的应用程序。开始时,我下载了Phonegap桌面,并在开发短语期间在Phonegap桌面上进行测试。它功能强大且灵活,可用于测试目的。

当我要完成应用程序时,我使用cordova CLI构建应用程序,然后在我的实际设备上安装apk文件。我发现通过使用相同的编码和设备,应用程序明显慢于Phonegap桌面,特别是在jquery动画和切换模式激活时:

    if(a >= 5)
        x = (x/10 +1) * 10;
    else
        x = (x/10) * 10;

当我打开应用程序时速度相同。在我执行一些操作来触发事件后,我观察到性能正在放缓。例如,我需要等待几秒钟让对话框提示出来,并且动画像往常一样变慢。如果我重新启动应用程序,性能将再次恢复正常,直到我重复相同的过程。

性能下降不仅仅是几毫秒,这是一个非常显着的差异,延迟高达4-6秒。如果我使用相同的编码和设备切换到Phonegap桌面,则不会发生这种情况。这让我不知道发生了什么,因为我认为他们共享相同的框架。

我也尝试使用 phonegap build android ionic build android 构建应用程序,但我也得到了相同的结果。有没有人有类似的经验,并且有解决这个问题的方法吗?

1 个答案:

答案 0 :(得分:0)

设备的速度和webview的版本是重点。在桌面上你有很多功能,可以在那里做第一步,但是然后切换到慢速设备进行测试,并使用较旧的Android版本测试应用程序。原因不是兼容性,原因是旧的机器人速度较慢。

如果应用程序在较慢的设备上运行良好,它将在新设备上运行良好。

Cordova本身和javascript非常快。当他们开始使用cordova开发并使用jQuery / jQuerymobile时,人们会犯一些错误:

  1. 使用干净的结构编写干净的HTML,尝试简化dom。

  2. 不要一遍又一遍地用jquery查询dom。如果您多次使用它,请将选择器放在变量中:

  3. var $selector = $("#myselector);
            
    if ($selector.height() > 100){
        // do something
    }

    1. 连接jQuery操作:
    2.  $("#myselector).css("active").text("my new text");

      1. 使用find(),next(),parent(),....如果你需要对多个元素进行多次操作,并且元素在dom中不会消失,那么使用find(),next(),parent(),...然后查询整个dom要快得多。

      2. 不要将jQuery用于所有内容。 jQuery很棒,但是很多操作都可以通过简单的javascript来完成。

      3. 不要将jQuery-plugins用于可以通过javascript轻松完成的事情。

      4. 制作单页html应用,避免使用多个html页面。这是降低应用程序速度并使开发变得复杂的最佳方法。

      5. 使用自定义jQuery下载,不包含您不需要的内容。

      6. 使用点按而不是点击。