社区首页 >问答首页 >Angularjs长投票

Angularjs长投票
EN

Stack Overflow用户
提问于 2014-11-25 02:11:02
回答 1查看 6.2K关注 0票数 9

我试图在Angularjs中执行一个简单的长轮询请求--我提出一个GET请求,它挂起直到服务器响应。然后,我再次提出请求,等待下一个响应,等等。

但是,由于某些原因,代码非常不可靠,错过了从服务器发送的大约80%的响应。

下面是我的代码:

代码语言:javascript
代码运行次数:0
复制
main.messages=[];
...
main.poll=function(){
  $http.get('http://localhost:8080/message')
  .success(function(data){
    console.log(data);
    main.messages.push(data);
    main.poll();
  })
  .error(...)
};

有什么明显的东西我在这里错过了吗?

服务器可以检测到浏览器已经连接,服务器确实发送了响应,但是上面的代码没有得到响应(没有控制台输出,也没有错误)。我试着用postman (chrome扩展版)提出这个请求,而长期民意测验在那里非常有效,所以我认为问题就在这里的某个地方。

update:问题只发生在Google上,而且只有在多个选项卡同时执行长轮询时才会出现问题。有一些似乎是随机的行为,创建和关闭新的标签与长期调查。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-11-25 08:03:43

我发现是什么导致了这一切。Chrome一次只会延长一个给定的url选项卡。如果用户打开了多个选项卡请求相同的长轮询,Chrome将在第二个选项卡启动轮询之前等待第一个选项卡中的长轮询结束。

我认为浏览器把长轮询请求看作是“没有响应的服务器”。当您试图在新选项卡中发出相同请求时,浏览器实际上不会再次发出相同的请求以节省资源。如果您查看网络选项卡,它将显示一个挂起的请求。但这是一个“谎言”,浏览器实际上是在等待服务器响应第一个选项卡的请求。一旦从服务器获得第一个选项卡请求的响应,它才会查询服务器第二个选项卡的请求。

换句话说,浏览器(Chrome和Opera)通常不会同时向同一个端点发出两个长轮询请求--即使这些请求来自两个不同的选项卡。

但是,有时在一定时间之后,它也决定释放对第二个选项卡的请求。但我想不出有什么规矩。如果使用相同的请求打开3个选项卡,则关闭前一个选项卡将导致来自其余两个选项卡的两个同时请求。但是,如果打开了6个选项卡,关闭前一个选项卡只会导致3个同时请求,而不是5个。我肯定会有一些规则来控制这种行为,但我想我们必须编写代码,假设请求可能同时发生,或者不同时发生,浏览器可能等待一个请求完成,然后再处理第二个请求。

Safari没有这种行为-它会同时通过多个选项卡发出多个请求。但Chrome和Opera确实显示了这种行为。

因此,与其同时向所有连接的客户端“广播”数据,我现在正在更改代码,使用时间戳来确定客户端需要多少数据,然后发送这些数据。

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

https://stackoverflow.com/questions/27123860

复制
相关文章
局域网SDN硬核技术内幕 19 团结一切可以团结的力量
我们发现,这个组网模型与园区SDN网络标准组网的区别在于,接入利用了旧有的交换机。我们回忆一下,园区SDN网络标准模型对接入交换机的要求——仅需要支持VLAN Access和VLAN Trunk即可。
用户8289326
2022/07/22
3740
局域网SDN硬核技术内幕 19 团结一切可以团结的力量
神奇的 SQL 之团结的力量 → JOIN
    闺蜜家暴富,买了一栋大别野,喊我去吃饭,菜挺丰盛的,筷子有些不给力,银筷子,好重,我说换个竹子的,闺蜜说,这种银筷子我家总共才五双,只有贵宾才能用~我咬着牙享受着贵宾待遇,终于,在第三次夹虾排滑落盘子时,我爆发了:去它喵的贵宾,我要虾排……不是……我要竹筷子!
青石路
2019/10/29
5440
神奇的 SQL 之团结的力量 → JOIN
团结互助、尊重隐私,保护个人信息
今天(1月28日)是国际数据隐私日(International Data Privacy Day),旨在提升对隐私和数据保护的意识,推进保护隐私和数据的行动。
用户U2
2022/06/02
4230
团结互助、尊重隐私,保护个人信息
《网络团结法案》—欧盟网安协作的纽带
基于欧盟网络安全战略,欧盟委员会于2023.04.18发布《网络团结法案》(Cyber Solidarity Act)以及网络安全技术学院(The Cybersecurity Skills Academy)计划。该法案从网络安全协作、网络安全能力储备等方面进行了规划,旨在提升检测、准备和响应网络安全事件方面的能力,从而更好地应对重大的和大范围的网络安全事件。
绿盟科技研究通讯
2023/08/31
8590
《网络团结法案》—欧盟网安协作的纽带
新冠病毒团结了全世界!科技巨头启动"复仇者联盟"式全面抗疫
截止3月23日晚间统计,目前冠状病毒全球确诊病例已突破38万人,死亡病例已达16554人,在中国疫情趋于稳定的同时,意大利确诊病例已达近6.4万人,美国也将要突破4.4万 人次。
新智元
2020/04/01
5440
擎天柱和好朋友的故事:MIT让机器人团结友爱互相传授技能
安妮 编译整理 量子位 报道 | 公众号 QbitAI 这是一个关于擎天柱(Optimus)和他的好朋友阿特勒斯(Atlas)的友情故事。 近日,麻省理工的CSAIL(计算机科学与人工智能实验室)的研
量子位
2018/03/30
4830
擎天柱和好朋友的故事:MIT让机器人团结友爱互相传授技能
进程冻结
进程冻结技术(freezing of tasks)是指在系统hibernate或者suspend的时候,将用户进程和部分内核线程置于“可控”的暂停状态。
233333
2023/03/08
1.2K0
进程冻结
冻结计划
大多数SQL语句都有一个关联的查询计划。查询计划是在准备SQL语句时创建的。默认情况下,添加索引和重新编译类等操作会清除此查询计划。下次调用查询时,将重新准备查询并创建新的查询计划。冻结计划使可以跨编译保留(冻结)现有查询计划。查询执行使用冻结的计划,而不是执行新的优化并生成新的查询计划。
用户7741497
2022/06/08
1.9K0
TutorialGateway 中文系列教程【翻译完成】
原文:TutorialGateway 协议:CC BY-NC-SA 4.0 阶段:机翻(1) 以斗争求团结则团结存,以妥协求团结则团结亡。——教员 在线阅读 在线阅读(Gitee) ApacheCN 学习资源 目录 C C# Python SQL Java JS MySQL C 语言示例 C++ 示例 Go 示例 Python 示例 Java 示例 贡献指南 本项目需要校对,欢迎大家提交 Pull Request。 请您勇敢地去翻译和改进翻译。虽然我们追求卓越,但我们并不要求您做到十全十美,因此请
ApacheCN_飞龙
2022/04/02
2210
TutorialsTeacher 中文系列教程【翻译完成】
原文:TutorialsTeacher 协议:CC BY-NC-SA 4.0 阶段:机翻(1) 以斗争求团结则团结存,以妥协求团结则团结亡。——教员 在线阅读 在线阅读(Gitee) ApacheCN 学习资源 目录 ASP.NET Core 教程 ASP.NET MVC 教程 控制反转教程 ASP.NET Web API 教程 LINQ 教程 TypeScript 教程 Angular2 教程 AngularJS 教程 Node.js 教程 D3.js 教程 SASS 教程 jQuery 教程 J
ApacheCN_飞龙
2022/04/02
1730
账户冻结说明
开通按量计费(后付费)资源时,会冻结您账户上的部分资金(余额小于冻结费用则无法开通);在您主动释放资源或由于您账户欠费导致资源释放后会解冻该部分资金;冻结的金额没有实际消耗,在冻结状态下无法使用,解冻后恢复使用。
☆~oo~☆
2022/09/21
1.8K0
世界卫生组织与腾讯加深合作,新冠肺炎AI自查助手全球开源
腾讯和世界卫生组织达成进一步合作了! 腾讯决定向世卫组织的COVID-19团结应急基金捐款1000万美元,并与之达成共同推动以数字医疗解决方案助力全球抗疫的协议。 世卫组织上月推出COVID-19团结应急基金,用以帮助全球所有国家,尤其是为医疗系统薄弱、疫情即将爆发或加速爆发的国家做好准备和应对,例如迅速发现病例,阻止病毒传播,以及照顾新冠肺炎病患。 而腾讯捐出的1000万美元,来自于腾讯上月设立的一亿美元全球战疫基金。该基金已向全球医院和一线医护人员提供了大批口罩、医疗个人防护装备和呼吸机等紧急医疗装备
腾讯大讲堂
2020/04/09
2640
ETH被冻结_微信冻结显示什么界面
如果我们的电脑在启动挖矿软件的时候,发现界面有停顿,Miner都会冻结。有时矿工会随机冻结,直到按下任何键。
全栈程序员站长
2022/11/04
1.3K0
ETH被冻结_微信冻结显示什么界面
微软辟谣裁员1.1万人/ 「美版视觉中国」起诉AI侵权/ 马斯克收购推特首期利息将到期…今日更多新鲜事在此
日报君 发自 凹非寺 量子位 | 公众号 QbitAI 大家好,今天是1月18日星期三,距离过年还有两天~ 快来和日报君一起看看,今天科技圈都有哪些新鲜事。 微软辟谣裁员1.1万人 据英国天空新闻台消息,有知情人士透露,微软计划裁减约5%的员工,即1.1万人左右。 与此同时,微软的许多团队都已经冻结了招聘,预计公司可能需要一两年时间才能恢复到与招聘冻结开始前相当的招聘速度。 这位知情人士还说,一些团队要求任何冻结招聘的例外情况都必须得到高管级别的批准。 最新消息是,微软一位发言人在给科技博客Gizmod
量子位
2023/02/28
2830
微软辟谣裁员1.1万人/ 「美版视觉中国」起诉AI侵权/ 马斯克收购推特首期利息将到期…今日更多新鲜事在此
不要cheat
确实是有点严格啊。不过话又说回来,如果是学生时代的考试,这又算什么呢?我们甚至没有办法去与他人交流,更不要说从他人那里汲取灵感,或者是学习生产力工具、开发环境的使用了。
北野茶缸子
2022/05/19
1900
不要cheat
前端开发人员用它就能做可视化应用!
有人说我一个前端工程师,只懂怎么写页面,如何能开发企业可视化应用?近几年可视化应用已经渗透到各行各业中,科技园、医院、学校、工厂、消防、安保、仓储无不涉猎!作为一个前端开发人员,你有必要再往前迈一步,多了解webgl技术,再沉淀一下Javascript。thingjs是一个面向物联网的3D可视化开发平台,可在线开发、对接数据、项目部署、实际应用~如果你想进步不妨一步哦!
要不要吃火锅
2019/12/12
7740
前端开发人员用它就能做可视化应用!
获取HTML冻结窗口元素
在写爬虫时会获取页面的元素去定位,但是有些页面元素只在鼠标悬停时才会出现,鼠标离开后就会消失,这种情况很不利于去查看想要获取的元素。
sugarbeet
2022/10/04
2.8K0
紫光展锐严正声明:“股东暗斗融资受阻”的报道严重不实!8.37%股权究竟归属何方?
7月21日消息,紫光展锐发布严正证明,称有关媒体近日发表的题为《紫光展锐股东“暗斗”融资受阻》的报道,存在严重不实信息,损害了公司声誉及利益。要求立即停止传播不实信息,保留追究相关媒体及个人法律责任并追偿损失的权利。
芯智讯
2023/08/09
3070
紫光展锐严正声明:“股东暗斗融资受阻”的报道严重不实!8.37%股权究竟归属何方?
CNCF参加Call for Code
在经历了有记录以来自然灾害最糟糕的一年之后,CNCF很自豪地支持Call for Code。这是一个全球性的挑战,要求开发者创建能够显著提高自然灾害准备和灾害发生时救援的解决方案。
CNCF
2019/12/06
4340
开源与Saas,如何选择软件?
随着云计算的发展和普及,在云上使用软件已经成为了主流,为了帮助广大用户理解,我在这里对云上软件的三种主要形态以及如何做出选择做一个简单的分析。
用户7426861
2021/08/24
7640

相似问题

蒸汽社区朋友名单和混乱他们

12

从朋友那里得到真正的朋友

32

jqGrid和Seo -他们能成为朋友吗?

20

Python导入和从x导入。他们之间真正的区别是什么?

23

获取Facebook的喜欢和事件的非朋友

14
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

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

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文