bu şekilde deneyin teşekkür ederim . Bu uygulama siz olabilirsiniz, ya da başka biri olabilir. Bu olduğunda, şu anda uygulamalar yürütmek (yalnızca sizinki değil) bu bildirimi alır ve her uygulama, mümkün olduğunca fazla kullanılmayan belleği boşaltarak yanıt vermelidir. Javascript kendi bellek yönetimini yaptığı için, bir Cordova uygulamasının gerçekten yapacağı değişkenler, değişkenleri null (veya bazı küçük değerler), yani myHugeGlobalObject = null;
, myArrayOfOneMillionThings = [];
, vb. Ayarlayarak, dereferans belleğidir. zaman çalışır. Yani, bir Received memory warning
bildirimi aldığınızda, yapmanız gereken şey budur. CDVPlugin.m yılında
, kendi JavaScript uygulamasına iOS bildirim sunmak için böyle bir şey yapacağını: o zaman
- (void)onMemoryWarning
{
// override to remove caches, etc
NSLog(@"CVPlugin.m: Got onMemoryWarning notification");
NSString * javascriptString = @"yourJSFunctionToManageMemoryWarnings();";
[self.webView stringByEvaluatingJavaScriptFromString:javascriptString];
}
ve JavaScript (index.html
yılında diyelim):
<script>
function yourJSFunctionToManageMemoryWarnings() {
console.log("yourJSFunctionToManageMemoryWarnings() was called");
myHugeGlobalObject = null;
myArrayOfOneMillionThings = [];
}
</script>
Özel durumunuza benziyor iOS, belleğe erişmeyi denediğinden (yani, harita görüntüsünü yüklemek için) ihtiyacınız olan uygulama olduğundan ve ne yapacağınızı, normalde yaptığınız şey gibi: kullanılmayan bellek yukarıda anlatıldığı gibi ve ne zaman Diğerleri de kibarca aynı şeyi yapar, hafızanı alırsınız.
Bu, harita görünümlerini yüklemeye çalışırken burada anlattığınız şeyin dışında bir tür bellek dışı koşulla karşılaşıyorsanız, nesne havuzu oluşturma gibi bazı gelişmiş Javascript bellek yönetimi tekniklerine bakmak isteyebilirsiniz (http://www.html5rocks.com/en/tutorials/speed/static-mem-pools/). temelde başlangıçta ihtiyacınız olan tüm belleği kaparsınız ve ihtiyacınız olduğunda buna sahip olacağını bilirsiniz.
Dev Tools'ları Safari'ye bağlamayı ve bellek çıktısını kontrol etmeyi denediniz mi? Genellikle büyük görüntüler veya karışık CSS kullanımı ile bağlantılıdır. – Max
Bu bellek sorunu iPhone cihazında alıyorum.Nasıl bunu safari araçları ile kullanabilir miyim? – Sujania
incelemek için prosedürü açıklayabilir misiniz http://appletoolbox.com/2014/05/use-web-inspector -debug-mobile-safari/ – Max