草庐IT

dispatch_async

全部标签

javascript - HTML5 IndexedDB Async API 疑惑

在阅读HTML5IndexedDBSpecification时我对它的异步请求模型有些怀疑。查看requestapiexample时,open方法用于启动异步请求。varrequest=indexedDB.open('AddressBook','AddressBook');request.onsuccess=function(evt){...};request.onerror=function(evt){...};在启动此请求时,尚未定义任何事件处理程序。这不是竞争条件吗?如果open方法在javascript解释器执行对onsuccess的赋值之前成功,会发生什么情况?或者只有在两个

jquery - 如何在没有 async = false 的情况下执行 jQuery 阻塞 AJAX 调用?

我有一个页面在继续到下一页之前使用HTML5setCustomValidity()方法对电子邮件进行AJAX验证[使用旧浏览器的webshims库]。为此,我在$.ajax()调用中将异步选项设置为false以使其同步,阻止页面等待AJAX响应,否则表单会在ajax调用返回之前提交,呈现验证无效。functionvalidateEmailRegistered(input){if(input.setCustomValidity===undefined)return;varerr='Emailaddressnotfound';$.ajax({url:'email-is-registered

javascript - 脚本元素上的 HTML5 async 属性到底有什么好处?

我对HTML5中脚本元素的新异步属性有些困惑,希望有人能给出明确的答案。浏览器支持并行连接,因此图像将并行下载。但是任何外部javascript都不会与其他外部javascript和图像并行下载。脚本会阻止页面加载,直到它们被下载和执行。要下载脚本而不阻塞页面的其余部分加载,最常见的技术是创建一个脚本元素,就像GoogleAnalytics片段所做的那样:varga=document.createElement('script');ga.type='text/javascript';ga.src='...ga.js';ga.async=true;vars=document.getEle

javascript - async=true 用于 css 链接标签

在HTML5脚本标签中可以通过async=true异步加载CSS资源是否有任何等效项?像这样的东西:基本原理是让浏览器加载css并缓存它,以供以后的请求使用,但让其余的过程畅通无阻。例如,启动画面。 最佳答案 2021年编辑:原始链接已移动-没有JavaScript的异步CSShttps://codepen.io/tigt/post/async-css-without-javascript"ItseemsthistrickcausesChrome&Firefoxtostartthebodyearlier,andtheysimplyd

iphone - dispatch_queue_create 具有相同标签的多个调用

我需要在为它们创建的自定义线程上执行一小组相关任务。这些任务将从不同的类(class)安排。我打算使用GCD的dispatch_queue_create创建自定义线程并在其上安排任务。请注意,所有相关任务都必须按顺序仅在该线程上执行。所以我的问题是,如果我调用dispatch_queue_create("my_custom_thread_label",NULL)来自多个类的相同标签我的代码库,它最终会映射到一个线程吗?或者我是否需要在一个地方创建它并在需要时获取对它的引用?谢谢。 最佳答案 您需要在一个地方创建它并传递指针。

iphone - 使用 dispatch_async 加速搜索?

我正在尝试加快我的应用搜索速度,但当有大量数据时它会出现滞后。所以我试图通过使用dispatch_async而不是dispatch_sync在UI上拆分搜索Predicate原因没有什么不同如果我使用它。问题是当我使用dispatch_async时,应用程序有时会崩溃,因为[__NSArrayIobjectAtIndex:]:index"17"beyondbounds。我现在发生这种情况是因为可以说第一个仍然有效并重新加载tableView并继续搜索将根据结果更改数组大小所以在这种情况下“崩溃”:(这是我的代码:dispatch_async(myQueue,^{searchArray=

ios - 从 NSOperationQueue 获取底层的 dispatch_queue_t

我似乎对dispatch_queue_t和NSOperationQueue队列有些混淆。默认情况下,AFNetworking的AFImageRequestOperation将在应用程序的主线程上执行成功回调block。要更改此设置,AFHTTPRequestOperation具有属性successCallbackQueue,您可以选择在哪个队列上运行回调。我正在尝试在已经执行HTTP请求的相同后台队列/后台线程上执行成功回调。NSOperationQueue而不是返回主线程>运行HTTP请求的也应该运行回调,因为我需要使用一些返回的图像进行一些繁重的计算。我的第一个尝试是将succes

iOS 测试 : dispatch_once get called twice. 应用程序第一,测试第二。观察者的问题

我有一个将在应用委托(delegate)中创建的单例类。当我运行XCTTests时,它会第二次创建。+(instancetype)urlSchemeManager{staticdispatch_once_tonceToken;staticUrlSchemeManager*_sharedInstance;dispatch_once(&onceToken,^{_sharedInstance=[UrlSchemeManagernew];});return_sharedInstance;}这导致了两个不同的实例。如果我只是将它用于单元测试,这没问题。但是在集成测试中,当我为urlSchmeme

iphone - Grand Central Dispatch (GCD) 调度源标志

我最近不再使用kqueue至GCDdispatchsources监视文件更改。这取得了很好的效果,并导致了一个更简单的API。我记录了我的开关here.我唯一的问题是现在我无法访问我在kqueue中能够访问的事件的标志。例如,使用kqueue我能够检查文件是否被删除、重命名,或者它的属性是否被更改为以下内容:structkeventevent;...if(event.flag&EV_DELETE){printf("Filewasdeleted\n");}此API是否不适用于GCD,或者我是否需要为我想收听的每个标志设置调度源。或者最好使用kqueue,因为它可以更好地了解已发生的事件。

ios - 无法在 iOS 应用程序中使用 dispatch_source_t 在 GCD block 中运行计时器

我想在GCDblock中创建一个计时器(每2秒触发一次并调用一个方法)以将其用作后台任务。但正如我所见,计时器永远不会触发。这是我的代码:-(void)startMessaging{BOOLqueue=YES;dispatch_queue_t_queue=dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT,0);dispatch_source_ttimerSource=dispatch_source_create(DISPATCH_SOURCE_TYPE_TIMER,0,0,_queue);dispatch_source_