gpt4 book ai didi

ios - 如何测试 UIWebView 对 JavaScript 的 10MB 限制?

转载 作者:行者123 更新时间:2023-11-29 03:39:05 25 4
gpt4 key购买 nike

我正在尝试测试 UIWebView 对 Javascript 内存分配的 10MB 限制。这是到目前为止我在模拟器(iOS 5.1)上运行的代码。

int size = 10485760+1024000*10; 
int i = 13;
char *cStr = (char *) malloc(size); // 20MB buffer
char *lcStr = cStr;
lcStr+=i;
strcpy(cStr, "window._x = \'");
for ( ; i < size-4; i++){
if(i%2){
*lcStr = ' ';
}else{
*lcStr = 'c';
}
lcStr++;
}
strcpy(lcStr, "c\';\0");

NSString *longStr = [NSString stringWithCString:cStr encoding:NSASCIIStringEncoding];
// by now 40MB used

//memory usage spikes to 60MB
NSString *result = [self.webView stringByEvaluatingJavaScriptFromString: longStr];

free(cStr);

HTML/JS:

<script type="text/javascript">
setTimeout(function(){document.getElementById("one").innerText = window._x;},3000);
</script>

我的问题是,上面的代码不会导致 UIWebView 抛出任何异常,即使在某一点上 JS 分配显然大于 10MB。我使用仪器来验证内存使用情况。

整个程序的最终结果是我看到一堆“c”在 WebView 中打印在屏幕上,但没有崩溃。

我做错了什么吗?我该如何测试这个 JS 限制?

最佳答案

限制因设备而异。模拟器不会施加与实际设备相同的限制。如果您在 iPhone 上进行测试,您应该会看到异常。

关于ios - 如何测试 UIWebView 对 JavaScript 的 10MB 限制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18710006/

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