当我运行此代码时,调用次数似乎限制在大约1000
var i = 1;
$interval(function() {
navigator.geolocation.getCurrentPosition(function(position) {
console.log('Plugin call number', i);
});
i++;
}, 10);
有没有办法超越这个限制?
编辑1 :这只是一个例子。就我而言,我有自定义相机插件,并且每次“捏合”或“捏合”事件都会调用其中一种方法。
编辑2 :达到限制时,应用程序停止调用插件(在这种情况下,它会在1004处停止)
此外,内存使用量不会停止增长
编辑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);
}
}
答案 0 :(得分:0)
Ionic是建立在Angular之上的,Angular在遇到2,000 data bindings之后因性能问题而臭名昭着。如果没有看到您的来源,很难确切知道发生了什么,但是如果捏合动作正在创建新的绑定,则可能就是这种情况。检查您的夹点调用是否正在启动新的数据绑定,如果是这样,您可能需要优化您的应用程序以使用单向绑定,绑定一次绑定或从范围释放它们。