如何testingUIWebView的JavaScript的10MB限制?
我试图testingUIWebView的10MB限制在Javascript内存分配。 这是我在模拟器上运行的代码(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>
我的问题是,上面的代码不会导致任何exception被UIWebView抛出,即使明显的JS分配在一个点上大于10MB。 我用仪器来validation内存使用情况。
整个程序的最终结果是,我看到一堆'c'在webview中被打印在屏幕上,但没有崩溃。
难道我做错了什么? 我怎样才能testing这个JS限制?
这些限制因设备而异。 模拟器不会像实际设备那样施加相同的限制。 如果你在iPhone上testing这个,你应该会看到一个exception。
- 在iPad应用程序中禁用垂直反弹效果
- IBM Worklight – 无法使用现有别名注册到事件源callback。 别名已经被用于事件源
- PhoneGap FileReader / readAsDataURL不触发callback
- cordovaiOS插件没有find
- 为什么你需要2个Javascript文件用于跨平台Cordova插件?
- 如何防止meteor.local的负载(当build立ios应用程序与phonegap)
- 如何避免运行时加载的googlemap api Javascript- phonegap?
- 如何防止Phonegap应用程序中的地理位置双重提示?
- 无法为Cordova iOS App生成发布版本