用户界面- stringByEvaluatingJavaScriptFromString ios挂起UI



我必须调用这个方法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代码。

最新更新