当 UIWebView 尝试阻塞锁定 Web 线程时,避免主线程冻结

2024-04-24

所有 UIWebView 共享一个 Web 线程。

当其中之一是init-ed,从超级视图等中删除,它们将尝试以阻塞方式从主线程锁定 Web 线程,从而暂时冻结主线程的运行循环。

如果网络线程繁忙,例如在进行长同步时XMLHttpRequest,这可能会长时间阻塞主线程。

有办法避免这种情况吗?

如果我可以修改 UIWebView,我只需使锁定尝试成为非阻塞,但显然情况并非如此,所以我正在寻找其他聪明的想法。


总而言之,就是:避免做任何长时间阻塞 Web 线程的事情(window.alert, window.prompt, XMLHttpRequest.open('GET', url, false),可能还有其他)

另外,避免调用锁定 Web 线程的方法,然后立即执行一些需要很长时间的操作,因为只有在控制权返回到运行循环后,Web 线程才会解锁。 (例如:致电-[UITextView setText:]然后在主线程上同步读取文件)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

当 UIWebView 尝试阻塞锁定 Web 线程时,避免主线程冻结 的相关文章

  • 在 iPhone 中创建视频

    我需要将图像序列 即 png 转换为 iPhone 中的视频文件 我如何将图像转换为视频 Regards 只需忽略 使用 ffmpeg 等不好的建议即可 这可以在桌面上运行 但是许可证问题 http multinc com 2009 08
  • 我的程序有内存泄漏

    IBAction play2 CFBundleRef mainBundle CFBundleGetMainBundle CFURLRef soundFileURLRef soundFileURLRef CFBundleCopyResourc
  • iOS中如何以url的形式发布数据?

    我想将 UITextfields 数据发送到服务器 我想发布数据 但服务器向我显示错误消息 请检查我的代码 NSURL url NSURL URLWithString http projectsatseoxperts net au fish
  • 由于辅助功能设置而未检测到 iOS 手势

    我正在开发的应用程序需要三点滑动手势 我已经成功地实现了这个使用UIGestureRecognizer大多数情况下它工作得很好 但是 如果您打开设备的 缩放 辅助功能设置 设置 gt 常规 gt 辅助功能 gt 缩放 则会停止识别该手势 缩
  • 突然我无法为 iPhone 模拟器构建

    有时人们真的很讨厌苹果的开发环境 说真的 有必要这么复杂吗 我的问题是这样的 我无法再在模拟器上构建我的项目 我收到以下错误 我意识到这是一个链接器错误 我不明白的是 1 为什么它突然不再工作 2 它为什么不会选择正确的 SDK 这是链接器
  • iPhone 中的视频过滤速度很慢

    我正在尝试在 iPhone 中过滤视频 这是我的程序结构和源代码 AppDelegate h AppDelegate m ViewController h ViewController m AppDelegate 文件与默认文件相同 这是我
  • 如何为现有核心数据实体添加更多属性?

    我有一个正在使用核心数据的项目 我需要向现有实体 列 添加更多属性 列 如果我手动将属性添加到数据模型应用程序崩溃 这是由于我用来将数据插入表的上下文保存之前 请帮助 谢谢 所以我的问题是我不知道这个持久存储协调器代码去了哪里 事实证明它是
  • GCD获取队列名称/标签

    如何获取当前队列名称 我的意思是队列标签com example myqueue 在 Xcode 4 调试器中我只能看到 block invoke 1 怎么样dispatch queue get label http developer ap
  • 如何从 UIImagePickerController 镜像 UIImage 图片

    我想弄清楚是否有任何方法可以镜像图像 例如 拍摄某人脸部的照片 然后将其切成两半 并显示他们的脸部在每一面都镜像后的样子 CGAffineTransform 函数中似乎没有类似的技巧 请各位图形专家帮忙 这里的基本 技巧 是使用关于 X 或
  • 从时间戳间隔获取缺失的月份

    我从服务器接收时间 以秒为单位 然后使用以下代码将 tjose 秒转换为月份 NSDateFormatter dateFormatter NSDateFormatter alloc init autorelease dateFormatte
  • 以编程方式创建 UILabel

    我通过代码执行了以下操作 UILabel label UILabel alloc initWithFrame CGRectMake 40 70 300 50 label backgroundColor UIColor clearColor
  • 将秒整数转换为 HH:MM,iPhone

    我正在为此苦苦挣扎 我想以 HH MM 格式在标签中显示一个以秒为单位的值 我在互联网上搜索了很长时间并找到了一些答案 但要么没有完全理解它们 要么它们看起来像是一种奇怪的做我想做的事情的方式 如果有人能帮助我解决这个问题 那就太好了 请记
  • 计算指向 CLLocation 的罗盘航向 - 适用于 iOS 的半正弦函数

    我了解如何获取 2 个 CLLocation 之间的距离 我需要确定从 CLLocation 到另一个 CLLocation 的广义罗盘方位 N NE E 等 在我实现使用半正矢公式推导方位之前 是否有一个通用的开源库或代码片段 您发现可以
  • CALayer 的 display/drawRect 方法中到底应该发生什么?

    如果有的话 这些方法中哪一个适合 更改 CATextLayer 的文本 将不同的图像加载到 CAImageLayer 中 告诉子层自我更新 老兄 我可能喝醉了 但是没有drawRect方法CAlayers 我想你可以使用drawInCont
  • UITableViewCell - 理解“可重用”

    UITableViewCell tableView UITableView tableView cellForRowAtIndexPath NSIndexPath indexPath static NSString reuseIdentif
  • iOS后台Location不发送http请求

    我的应用程序需要在后台跟踪用户位置 但无法发送 获取 请求 当应用程序到达前台时 http 请求会立即发送 我正在使用 RestKit 来处理所有网络请求 并且遵循本教程 http www mindsizzlers com 2011 07
  • 为什么我无法将子窗格 plist 文件添加到项目的 Settings.bundle 中?

    我正在运行 Xcode 4 1 并且一直在关注有关应用程序设置的教程 一切都进展顺利 直到我准备好为我想要添加的子窗格添加 plist 我正在观看的视频教程 也使用 Xcode 4 1 显示该人右键单击 settings bundle 并选
  • 计算MKPolyline路径的距离?

    我想获取 MKPolyline 路径的米数 以便我可以告诉用户完成路径还剩多少米 我一直在寻找一些东西来做这件事 但我什么也没得到 Thanks 尽管听起来很乏味 但除非您想自己进行数学计算 否则您可能必须迭代该行的思想points 将每个
  • 如何从 NetService 获取 IP 地址

    当我得到一个 NetService 对象时 我尝试这样做 NSNetService ss netArray objectAtIndex indexPath row ss delegate self ss resolveWithTimeout
  • 如何在 Azure 中调试测试发送?

    I am trying to setup a successfull push notifications between my Net backend and ios client in azure I followed this htt

随机推荐