Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从单独的web请求中累积结果

从单独的web请求中累积结果
EN

Stack Overflow用户
提问于 2013-09-16 10:04:59
回答 2查看 60关注 0票数 0

我对多线程和iOS都很陌生,我在如何处理这个问题上遇到了一个心理障碍。我不需要大量的代码,也不需要您为我编写代码,我只是在寻找更多的概念方法,或者可能是简短的伪代码。

我在iPad上有一个应用程序。

我在Azure (云存储)上存储了应用程序使用的8个文件

用户可以随意下载这8个文件,以便在iPad上本地使用。

每隔30分钟,我会检查Azure上的8个文件,并将它们与本地存储的文件进行比较,以找出差异。Azure上的每个更改文件(为简单起见,称其为Azure文件与本地文件的散列比较)在计算iPad上的内容与azure上的内容之间的更改文件时,都算作"+1“。

我遇到的问题是,Azure存储文件的方式,我有必要从iPad发出2个异步web请求,在第一个调用中获取8个文件中的3个,在第二个调用中获得5个文件。

那么,我需要能够比较所有的8个在一次,以便能够正确地更新徽章与正确的计数多少文件已经改变。如果我只是处理第一个web调用(假设一个文件已经改变了),那么我用一个1更新这个徽章,几秒钟后第二个web请求的响应出现了,三个文件已经改变了,我用3更新了这个徽章,这是不正确的,因为它应该是4。从第一个web请求的响应中的1更改,+从第二个web请求的响应中的3个更改。

那么,从这2个web请求响应中积累结果的最佳/最简单方法是什么,这样我就可以一次对所有8个文件进行一次比较,并使用适当的计数更新徽章。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-09-16 13:18:37

我可以建议你用两种方法来完成你的任务。

  1. 简单的方法。启动下载请求时,将updatedFilesCouter设置为-1。在任何操作结束时,您都需要进行比较,并添加或替换updatedFilesCouter。如果第一个操作要更改updatedFilesCouter,您可以注意到您的值总是-1,所以您需要替换它。如果第二个操作要更改updatedFilesCouter,那么它的值总是与-1不同,因此需要添加新值。因此,如果第一个操作有2个更新的文件,第二个操作有3个文件,那么最终您将得到5个文件,并且您可以知道哪个操作是最后一个更新徽章值的操作。
  2. 更先进的方法。为您的下载操作制作NSOperationsQueue。在完成任何操作后,将文件存储在内存中。完成NSOperationQueue后,进行比较,然后决定删除/替换文件。
票数 0
EN

Stack Overflow用户

发布于 2013-09-16 10:15:18

在不了解更多细节的情况下,我能想到的最简单的解决方案是在管理文件检查(伪代码)的实例中执行类似的操作:

代码语言:javascript
运行
AI代码解释
复制
- (void)checkForUpdate {
  self.runningRequests = 0;
  self.updatedFiles = 0;
  // Launch each necessary request, incrementing runningRequests appropriately.
}

- (void)requestCallbackMethodWithResponse:(id)response {
  self.updateFiles += response.numberOfUpdates; // or whatever your logic
  self.runningRequests--;
  if (self.runningRequests <= 0) {
    // update badge to match updateFiles
  }
}

如果回调可能来自另一个线程,则可以用@synchronize(self) { /* actual code */ }包围方法体。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18834465

复制
相关文章
PyTorch中的梯度累积
我们在训练神经网络的时候,超参数batch_size的大小会对模型最终效果产生很大的影响,通常的经验是,batch_size越小效果越差;batch_size越大模型越稳定。理想很丰满,现实很骨感,很多时候不是你想增大batch_size就能增大的,受限于显存大小等因素,我们的batch_size往往只能设置为2或4,否则就会出现"CUDA OUT OF MEMORY"(OOM)报错。如何在有限的计算资源下,采用更大的batch_size进行训练,或者达到和大batch_size一样的效果?这就是梯度累加(Gradient Accumulation)技术了
mathor
2021/07/28
1.5K0
CEF 修改请求 header 与单独处理 header 中的 referer
有些时候利用 CEF 内嵌的页面加载某些资源的时候需要附带一些头信息,比如里面的图片需要携带一些校验和信息才能正常访问的,这个时候就需要在发起请求前对 HTTP Request 的 Header 部分进行修改。CEF 提供了两个接口用于读写 Request Header,分别是 CefLifeSpanHandler::OnAfterCreated 和 CefRequestHandler::OnBeforeResourceLoad 方法。两个都是虚函数,需要继承并重写两个方法来实现对 Request Header 的读取和修改。
我与梦想有个约会
2020/01/04
3.5K0
[android] 请求码和结果码的作用
当一个界面中要要开启多个带有返回值的activity时,这个时候,就需要用到请求码和结果码了
唯一Chat
2019/09/10
5230
Web请求过程
B/S网络架构基于统一的应用层协议 HTTP来交互数据,与大多数的传统 C/S互联网应用程序采用的长连接的交互模式不同,HTTP采用无状态的短连接的通信方式。一次请求就完成一次数据交互,然后通信就断开。采用这种方式能够同时服务更多的用户,因为当前互联网应用每天都会处理上亿的用户请求,不可能每个用户访问一次后就一直保持这个链接。B/S架构设计如下:既要满足海量用户的访问请求,又要保持用户请求的快速响应。(当浏览器解析服务器返回的数据时,会发现还有一些静态资源,如:CSS/JS/imager等时又会发起另外的 HTTP请求,而这些请求很可能会在CDN上,那么 CDN服务器又会处理这个用户的请求)
Java架构师必看
2021/05/14
4080
Web请求过程
javascript 请求 sse stream,解析结果
比如 目前 openai api 的 stream 返回。 标准的请求sse是 EventSource,但是这个无法像正常post一样,携带数据或者header。若你的接口需要进行鉴权,需要携带header或者body数据,像post请求一样,那么这个EventSource就没法用了。
shirishiyue
2023/05/28
3.1K0
谈谈IE针对Ajax请求结果的缓存
在默认情况下,IE会针对请求地址缓存Ajax请求的结果。换句话说,在缓存过期之前,针对相同地址发起的多个Ajax请求,只有第一次会真正发送到服务端。在某些情况下,这种默认的缓存机制并不是我们希望的(比如获取实时数据),这篇文章就来简单地讨论这个问题,以及介绍几种解决方案。 目录 一、问题重现 二、通过为URL地址添加后缀的方式解决问题 三、通过JQuery的Ajax设置解决问题 四、通过定制响应解决问题 一、问题重现 我们通过一个ASP.NET MVC
蒋金楠
2018/01/15
1.4K0
谈谈IE针对Ajax请求结果的缓存
如何从结果集中获得随机结果
全表扫描(Full table Scan) 全表扫描返回表中所有的记录。 执行全表扫描,Oracle读表中的所有记录,考查每一行是否满足WHERE条件。Oracle顺序的读分配给该表的每一个数据块,这样全表扫描能够受益于多块读. 每个数据块Oracle只读一次.
数据和云01
2018/09/10
1.7K0
shell累积1
创建多个目录 mkdir {a,b,c,d} 将一个文件copy到当前目录下所有目录内 find . -type d -exec cp Makefile {} \; 替换当前目录下所有的Makefile里面的TARGET为target find . -name Makefile -exec sed -i s/TARGET/target/g {} \; 查看一下当前目录下的所有的Makefile里面的内容 find . -name Makefile -print -exec cat {} \; ./b/Ma
用户3765803
2019/03/05
3480
web页面请求的整个过程_HTTP的请求方法
一个HTTP请求报文由请求行(request line)、请求头部(headers)、空行(blank line)和请求数据(request body)4个部分组成。
全栈程序员站长
2022/08/03
9560
web页面请求的整个过程_HTTP的请求方法
从 Google 搜索结果中屏蔽无价值网址
因为以前工作的需要,所接触的领域必须在 Google 中才能搜索到相关资源,国内是给屏蔽掉的。从那时开始习惯使用 Google,也不得不说它的确比国内的搜索引擎涉及的面更广,得到的有价值信息更多。但它也不是没有缺点的,当你搜索一些中文资料时,几乎每一个搜索结果页中都会看到一些相同的网站,比如“无极吧”等类似这些无价值的网站,点进去以后实际内容与你想要的根本不符,这些无价值网站浪费了我们太多的时间。所以就有了如何在搜索结果中屏蔽无价值网站的想法。
我与梦想有个约会
2020/01/06
5.7K0
从 Google 搜索结果中屏蔽无价值网址
如何从请求、传输、渲染3个方面提升Web前端性能
什么是WEB前端呢?就是用户电脑的浏览器所做的一切事情。我们来看看用户访问网站,浏览器都做了哪些事情:
宜信技术学院
2019/06/28
1.9K0
如何从请求、传输、渲染3个方面提升Web前端性能
什么是WEB前端呢?就是用户电脑的浏览器所做的一切事情。我们来看看用户访问网站,浏览器都做了哪些事情:
用户5827212
2019/07/23
8000
PyTorch 中的多 GPU 训练和梯度累积作为替代方案
在本文[1]中,我们将首先了解数据并行(DP)和分布式数据并行(DDP)算法之间的差异,然后我们将解释什么是梯度累积(GA),最后展示 DDP 和 GA 在 PyTorch 中的实现方式以及它们如何导致相同的结果。
数据科学工厂
2023/08/10
5430
PyTorch 中的多 GPU 训练和梯度累积作为替代方案
python 中单独调用 django 的数据库模块
玉面小色熊
2017/07/28
3.9K0
python 中单独调用 django 的数据库模块
解决java的http请求库dongliu.requests请求结果中文乱码的问题
在前几天接到一个需求,需要爬取某个网站上的一些数据,并且经过整理后将爬取到的数据写入到数据库内。
LCyee
2020/08/05
1.3K0
解决java的http请求库dongliu.requests请求结果中文乱码的问题
Influxdb中Select查询请求结果涉及到的一些数据结构
相当于c里面的链表元素,itr指向下一个元素的指针,buf表示当前元素,即FloatPoint类型的链表的迭代器.
扫帚的影子
2018/12/14
2.8K0
Influxdb中Select查询请求结果涉及到的一些数据结构
前端 Fiddler 抓包修改请求响应结果
实际前端开发中,对接线上发布的后端接口,由于业务比较复杂,也设计到以前的库表,开发过程经常会出现部分页面数据不完整,无法对接整个流程,日常前端开发也有其他方式实现功能测试验证:
草帽lufei
2022/07/29
5710
前端 Fiddler 抓包修改请求响应结果
点击加载更多

相似问题

从多个HTTP请求中提取和累积结果

13

具有累积结果的多个json请求

11

从多个请求中累积媒体内容

12

ajax封装的请求需要等待累积的结果

32

如何使用从并行web请求中收集结果?

11
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档