在Cordova中,您可以对插件进行的呼叫数量是否有限制?

时间:2015-04-13 16:55:50

标签: cordova phonegap-plugins ionic-framework ionic cordova-plugins

当我运行此代码时,调用次数似乎限制在大约1000

var i = 1;
$interval(function() {
  navigator.geolocation.getCurrentPosition(function(position) {
    console.log('Plugin call number', i);
  });
  i++;
}, 10);

有没有办法超越这个限制?

编辑1 :这只是一个例子。就我而言,我有自定义相机插件,并且每次“捏合”或“捏合”事件都会调用其中一种方法。

编辑2 :达到限制时,应用程序停止调用插件(在这种情况下,它会在1004处停止) enter image description here

此外,内存使用量不会停止增长 enter image description here

编辑3 :似乎问题只发生在Ionic中。我在纯Cordova应用程序中尝试了这个代码,并且调用次数似乎没有限制(内存使用量也增长得更慢)

onDeviceReady: function() {
    app.receivedEvent('deviceready');
    if (window.cordova) {
        var i = 1;
        setInterval(function() {
            navigator.geolocation.getCurrentPosition(function(position) {
                console.log('Plugin call number', i);
            });
            i++;
        }, 10);
    }
}

1 个答案:

答案 0 :(得分:0)

Ionic是建立在Angular之上的,Angular在遇到2,000 data bindings之后因性能问题而臭名昭着。如果没有看到您的来源,很难确切知道发生了什么,但是如果捏合动作正在创建新的绑定,则可能就是这种情况。检查您的夹点调用是否正在启动新的数据绑定,如果是这样,您可能需要优化您的应用程序以使用单向绑定,绑定一次绑定或从范围释放它们。