gpt4 book ai didi

在 Cordova 中使用 Angular/嵌入 youtube 更改 IFRAME src 时 IOS 内存积累?

转载 作者:行者123 更新时间:2023-12-01 16:29:00 24 4
gpt4 key购买 nike

恐怕我和 this unasnwered question. 有同样的问题

我的 Cordova ionic IOS 应用程序中有一个空白 IFRAME,用于嵌入 YouTube 视频。

我通过单击 Next Video 更改 iframe 的 NG-SRC=""。但经过测试,似乎 phone/cordova/webview 正在缓存 iframe 的旧内容。在内存不足之前,我只能浏览 20 个左右的视频。

我已经尝试使用 angular.element.remove() 来删除 iframe 以及首先将 iframe src 设置为空白,并且似乎都不会影响每个 Xcode 正在使用的内存量。我也尝试过cordova插件ClearCache,也没有清除任何内存。

请帮忙!有没有更好的方法将 youtube 嵌入到 Cordova 应用程序中?
我花了数周时间研究这一切,让它在我身边崩溃(不是双关语)

我的视频 View 如下:

<ion-view view-title="Random Video">

<iframe id="youtube" sandbox="allow-scripts allow-same-origin" ng-src="{{video.url | trustAsResourceUrl}}" frameborder="0" allowfullscreen></iframe>

<h4>{{video.title}}</h4>

<button ng-click="nextVideo()">
</ion-view>

我的 Controller 就像:
angular.module('starter.controllers')
.controller('VideoCtrl', function(VideoService) {

$scope.video = {};


$scope.nextVideo = function() {
$scope.video = null; //doesnt seem to help
//$scope.$destroy(); //doesn't help
//angular.element(document.querySelector( '#youtube' )).attr("src", " ");
//angular.element(document.querySelector( '#youtube' )).remove();

//neither of the above 2 remove any memory

VideoService.getVideo().then(function(response){
$scope.video = response.data;
});
}

$scope.nextVideo();


});

请注意,当我将我的应用程序加载到网站上并加载 chrome 时,我可以循环播放视频而不会看到内存使用量上升(至少查看 taskmgr.exe)

最佳答案

似乎将 iframe 设置为空字符串就足够了,但对于某些浏览器和某些情况,则不然。可能需要一个一个递归地删除事件监听器和元素。也许令人惊讶的是,下面的递归方法 (1) 比仅设置为空字符串 (2) 更快:

1.递归

while (box.lastChild) {
box.removeChild(box.lastChild);
}

2.设置空字符串
myNode.innerHTML = '';

https://stackoverflow.com/a/3955238/1158376以供引用。

此外,在递归方法中,可能需要对某些项目进行特殊处理,例如首先删除事件监听器、使函数无效( http://javascript.crockford.com/memory/leak.html),并使用专用的清理方法,如 jQuery( http://javascript.info/tutorial/memory-leaks)。

您可以尝试的另一种策略是为您播放的每个视频加载一个带有新 iframe 的新网页。加载新页面应该使浏览器能够释放先前声明的内存。

关于在 Cordova 中使用 Angular/嵌入 youtube 更改 IFRAME src 时 IOS 内存积累?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33246000/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com