标签: polling

推送通知技术如何在Android上运行?

Google如何实施推送通知功能?它是通过在后台运行的服务还是以不同的方式完成的轮询来工作的?

android polling push-notification

200
推荐指数
3
解决办法
7万
查看次数

检测浏览器选项卡是否具有焦点

是否有可靠的跨浏览器方式来检测选项卡是否具有焦点.

场景是我们有一个应用程序定期轮询股票价格,如果页面没有焦点我们可以停止轮询并节省每个人的交通噪音,特别是当人们是打开不同组合的几个选项卡的粉丝.

window.onblurwindow.onfocus这个选项?

javascript optimization polling

131
推荐指数
7
解决办法
11万
查看次数

jQuery,简单的轮询示例

我正在学习jQuery,我正在尝试找到一个简单的代码示例,它将针对某个条件轮询API.(即每隔几秒请求一个网页并处理结果)

我熟悉如何在jQuery中使用AJAX,我似乎无法找到让它在"计时器"上执行的"正确"方式.

jquery polling

97
推荐指数
5
解决办法
11万
查看次数

jQuery AJAX轮询JSON响应,基于AJAX结果或JSON内容进行处理

我是一个初学者到中级的JavaScript/jQuery程序员,因此非常感谢具体/可执行的例子.

我的项目需要使用AJAX来轮询返回包含要添加到DOM的内容的JSON的URL,或者使用消息{"status":"pending"}来表示后端仍在使用内容生成JSON响应.这个想法是对URL的第一个请求触发后端开始构建JSON响应(然后缓存),后续调用检查这个JSON是否准备就绪(在这种情况下它是提供的).

在我的脚本中,我需要以15秒的间隔轮询此URL,最多1:30分钟,并执行以下操作:

  • 如果AJAX请求导致错误,请终止脚本.
  • 如果AJAX请求成功,并且JSON内容包含{"status":"pending"},则继续轮询.
  • 如果AJAX请求导致成功,并且JSON内容包含可用内容(即除了""status":"pending"}之外的任何有效响应),则显示该内容,停止轮询并终止脚本.

我尝试了一些方法,但成功有限,但我觉得它们比他们需要的更加混乱.这是一个骨架函数,我成功地使用它来一次制作一个AJAX请求,如果我从JSON响应中获得可用内容,它就能完成它的工作:

// make the AJAX request
function ajax_request() {
  $.ajax({
    url: JSON_URL, // JSON_URL is a global variable
    dataType: 'json',
    error: function(xhr_data) {
      // terminate the script
    },
    success: function(xhr_data) {
      if (xhr_data.status == 'pending') {
        // continue polling
      } else {
        success(xhr_data);
      }
    },
    contentType: 'application/json'
  });
}
Run Code Online (Sandbox Code Playgroud)

但是,除非收到包含可用内容的有效JSON响应,否则此函数当前不执行任何操作.

我不知道该怎么做只是评论.我怀疑另一个函数应该处理轮询,并_根据需要调用ajax request(),但我不知道ajax _request()将其结果传递回轮询函数的最优雅方式,以便它可以适当地响应.

很感谢任何形式的帮助!如果我能提供更多信息,请告诉我.谢谢!

javascript ajax jquery json polling

46
推荐指数
1
解决办法
4万
查看次数

套接字连接和轮询.哪种电池寿命更好?

所以...我正在为Android制作应用程序.应用程序需要发送和接收实时聊天数据(需要是一个套接字),但它也需要发送命令(这不是客户端在发送内容时知道的).

我需要知道在节省用户电池方面什么是更好的解决方案.

a)每次发送命令时打开和关闭连接,如果打开聊天选项卡,则保持连接不变.

b)始终保持连接不变.

我已经浏览了一下互联网,但得到了不同的答案,有人说保持持久的连接对电池寿命有害,而另一些人则认为不是(例如:"你问是否打开TCP连接会耗尽电池电量- 生活?也许我在这里不过了,但打开连接不应该浪费电池寿命......如果你认为我会想知道你在哪里得到这些信息.这对我来说听起来很奇怪.")

或者,如果有另一种解决方案会更好.我不认为谷歌的C2DM在这种情况下也会非常有用.

基本上,更多的是耗尽电池:持久连接,或者打开和关闭连接,除非聊天标签打开?

谢谢!

sockets android battery tcp polling

40
推荐指数
1
解决办法
2万
查看次数

什么是监视REST资源以进行更改的RESTful方法?

如果有一个REST资源我想要监视来自其他客户端的更改或修改,那么最好的(也是最RESTful)方式是什么?

我这样做的一个想法是提供特定的资源来保持连接打开,而不是在资源不存在的情况下立即返回.例如,给定资源:

/game/17/playerToMove
Run Code Online (Sandbox Code Playgroud)

这个资源上的"GET"可能会告诉我轮到我的对手了.我可能会注意到移动号码(比如5)并试图检索下一步行动,而不是不断地轮询这个资源以找出轮到我移动的时间:

/game/17/move/5
Run Code Online (Sandbox Code Playgroud)

在"正常"REST模型中,似乎对此URL的GET请求将返回404(未找到)错误.但是,如果相反,服务器保持连接打开,直到我的对手发挥他的移动,即:

PUT /game/17/move/5
Run Code Online (Sandbox Code Playgroud)

然后服务器可以将我的对手PUT的内容返回到该资源.这将为我提供我需要的数据,以及一种通知我的对手何时移动而不需要轮询.

这种方案是RESTful吗?或者它违反了某种REST原则?

rest polling long-polling

36
推荐指数
1
解决办法
2万
查看次数

轮询有什么问题?

我听说有一些开发人员最近说他们只是轮询东西(数据库,文件等)以确定什么时候发生了变化,然后运行任务,比如导入.

我真的反对这个想法,并认为利用Remoting,WCF等可用技术将远远优于民意调查.

但是,我想确定为什么其他人更喜欢一种方法而不是另一种方法的原因,更重要的是,我怎样才能说服其他人在当今这个时代投票是错误的呢?

.net c# asp.net polling

34
推荐指数
6
解决办法
1万
查看次数

使用setInterval()进行简单的连续轮询

对于需要刷新以设置间隔呈现给用户的部分数据的简单webapp,使用setInterval()从端点获取JSON而不是使用适当的轮询框架是否有任何缺点?

为了举例,我想说我每5秒刷新一次处理作业的状态.

javascript ajax polling setinterval

34
推荐指数
3
解决办法
3万
查看次数

如何等待WebSocket的readyState更改

我正在尝试实现一个带回退轮询的WebSocket.如果WebSocket连接成功,则readyState变为1,但如果失败,readyState则为3,我应该开始轮询.

我试过这样的事情:

var socket = new WebSocket(url);
socket.onmessage = onmsg;
while (socket.readyState == 0)
{
}
if (socket.readyState != 1)
{
    // fall back to polling
    setInterval(poll, interval);
}
Run Code Online (Sandbox Code Playgroud)

我期待socket.readyState异步更新,并允许我立即阅读.然而,当我运行这个时,我的浏览器会冻结(我放弃它大约半分钟才放弃).

我想也许有一个onreadyStateChanged事件,但我没有在MDN参考中看到一个.

我应该如何实现这个?显然空循环不起作用,并且没有事件发生.

javascript polling websocket

32
推荐指数
6
解决办法
6万
查看次数

每隔x秒轮询api并做出反应

我必须每隔一两秒钟在屏幕上监控一些数据更新信息.我认为使用此实现的方式:

componentDidMount() {
    this.timer = setInterval(()=> this.getItems(), 1000);
  }

  componentWillUnmount() {
    this.timer = null;
  }

  getItems() {
    fetch(this.getEndpoint('api url endpoint"))
        .then(result => result.json())
        .then(result => this.setState({ items: result }));
  }
Run Code Online (Sandbox Code Playgroud)

这是正确的方法吗?

polling reactjs

29
推荐指数
4
解决办法
2万
查看次数