我必须调用这个方法stringByEvaluatingJavaScriptFromString每秒钟更新一个Webview的UI。当方法被调用时,UI会挂起一段时间。下面的代码片段没有解决我的问题。提前谢谢。
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
dispatch_async(dispatch_get_main_queue(), ^{
[webView stringByEvaluatingJavaScriptFromString:string];
});
});
一些搜索表明,在GCD
块中换行可能是一个潜在的bug,下面的操作有助于:
[webView performSelectorOnMainThread:@selector(stringByEvaluatingJavaScriptFromString:) withObject:string waitUntilDone:NO];
然而,stringByEvaluatingJavaScriptFromString:
必须在主线程上调用,如果你的string
变量很长,js
可能没有办法从obj-c
端平滑它。您可以尝试优化您的js
代码。