标签: polling

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

使用JavaScript进行服务器轮询

对于需要快速刷新数据的应用程序,使用JavaScript轮询服务器的最佳做法是什么?我正在使用jQuery作为前端,使用Java Spring Framework作为后端.

刷新数据的示例可以是非常快速地(每1秒)更新的项目列表.

javascript ajax jquery polling

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

使用Backbone.js轮询集合

我正在努力使Backbone.js Collection与服务器上发生的事情保持同步.

我的代码类似于以下内容:

var Comment = Backbone.Model.extend({});
var CommentCollection = Backbone.Collection.extend({
    model: Comment
});

var CommentView = Backbone.View.extend({ /* ... */ });
var CommentListView = Backbone.View.extend({
    initialize: function () {
        _.bindAll(this, 'addOne', 'addAll');

        this.collection.bind('add', this.addOne);
        this.collection.bind('refresh', this.addAll);
    },
    addOne: function (item) {
        var view = new CommentView({model: item});
        $(this.el).append(view.render().el);
    },
    addAll: function () {
        this.collection.each(this.addOne);
    }
});

var comments = new CommentCollection;
setInterval(function () {
    comments.fetch();
}, 5000);
Run Code Online (Sandbox Code Playgroud)

会发生什么事情,当提取注释时,refresh被调用,相同的注释到底部CommentListView- 这是我对上面代码的期望.

我想知道的是什么是"刷新"视图的最佳方式,而不会失去任何"本地状态".

javascript ajax polling backbone.js

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

轮询正确的方式?

我是一名软件/硬件工程师,在C和嵌入式技术方面拥有丰富的经验.目前我正在忙着用C#(.NET)编写一些使用硬件进行数据采集的应用程序.现在以下,对我来说,燃烧,问题:

例如:我有一台机器,它有一个用于检测轴最终位置的开关.现在我正在使用USB数据采集模块来读取数据.目前我正在使用Thread来连续读取端口状态.

此设备上没有中断功能.

我的问题:这是正确的方法吗?我应该使用计时器,线程还是任务?我知道民意调查是你们大多数人"讨厌"的事情,但欢迎任何建议!

c# hardware multithreading task polling

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

如何使用Angular 2 Observable进行轮询

鉴于以下代码,如何更改它以使得"api/foobar"的get请求每500毫秒重复一次?

import {Observable} from "RxJS/Rx";
import {Injectable} from "@angular/core";
import {Http} from "@angular/http";

@Injectable() export class ExampleService {
    constructor(private http: Http) { }

    getFooBars(onNext: (fooBars: FooBar[]) => void) {
        this.get("api/foobar")
            .map(response => <FooBar[]>reponse.json())
            .subscribe(onNext,
                   error => 
                   console.log("An error occurred when requesting api/foobar.", error));
    }
}
Run Code Online (Sandbox Code Playgroud)

polling observable angular

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

如何在Javascript/jQuery中重置超时?

我的网页中有一个字段A,当用户编辑时,调用API调用(使用jQuery),更新字段B.编辑后,应每隔10秒调用一次API以再次更新字段B. .我目前这样做使用:

setTimeout(thisFunction, 10000);
Run Code Online (Sandbox Code Playgroud)

问题是每次用户编辑字段A时都会设置此超时,在编辑字段A几次后会导致多次设置超时并且API被多次调用.这使得网站看起来非常紧张.

我想要做的是,每次编辑字段时都设置一个新的超时,无论是用户编辑字段A,还是间隔达到10秒,从而轮询API.换一种说法; 如果字段B未更新10秒或更长时间,则应更新该字段.

最后,如果用户然后单击按钮C,则轮询应该停止.

所以我的问题; 如果该字段B没有更新10秒或更长时间如何运行更新字段B的功能,如何在我想要的时候停止轮询(当用户点击另一个按钮时)欢迎所有提示!

javascript jquery timeout polling

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

为什么触摸事件会破坏我的Android帧速率?

我正在为Android开发游戏.它有很多事情发生但运行得相当顺利.也就是说,直到用户触摸屏幕.

虽然他们触摸它,onTouchEvent被称为(与action = ACTION_MOVE,x = 0y = 0)大致在一次看似每十毫秒是一个相当高的优先级,因为它绝对抹杀的帧率.一旦触摸结束,帧速率就会恢复到良好状态.

我试过了

  • 具有onTouchEvent为游戏照常手柄输入
  • onTouchEvent回报true立竿见影
  • 根本没有onTouchEvent实施

这三种情况都存在问题.

有没有遇到过这个?有没有办法降低ACTION_MOVE生成事件的速率,或确保它们仅在实际移动时生成,或者使用仅获取触摸当前位置的轮询方法?或者甚至只是一种完全禁用它的方法?

android frame-rate polling touch

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

更新Backbone模型/视图的轮询请求

我需要找到一种方法来更新用它实现的Web应用程序backbone.

用例如下:
我有几个视图,每个视图,或者与此视图相关的模型/集合,需要在不同的时间向服务器发出不同的轮询请求以发现一些更改.

我想知道最通用的方法是什么:

1)实现Traditional Polling Request
2)实现Long Polling Request
3)实现HTML5 web socket


PS:
1)服务器是用PHP编写的.
2)目前我正在寻找一种不使用HTML5 WebSockets的解决方案,因为使用PHP可能并不那么简单.


这是我的简单代码(1)使用Traditional Polling Request.

(1)

// MyModel
var MyModel = Backbone.View.extend({
    urlRoot: 'backendUrl'
});

// MyView
var MyView = Backbone.View.extend({

    initialize: function () {
        this.model = new MyModel();
        this.model.fetch();
        this.model.on('change', this.render);
        setTimeout(function () {
            this.model.fetch();
        }, 1000 * 60 * 2); // in order to update the view each two minutes
    }
});
Run Code Online (Sandbox Code Playgroud)

javascript polling long-polling websocket backbone.js

15
推荐指数
2
解决办法
3444
查看次数

民意调查与长期民意调查

我进入了这些示例,显示了javascript中的轮询与长轮询,但我不明白它们之间的区别.特别是关于长轮询的例子,它如何保持连接打开?

这就是传统轮询方案的样子:

(function poll(){
  setTimeout(function(){
    $.ajax({ url: "server", success: function(data){
      //Update your dashboard gauge
      salesGauge.setValue(data.value);

      //Setup the next poll recursively
      poll();
    }, dataType: "json"});
  }, 30000);
})();
Run Code Online (Sandbox Code Playgroud)

这是长轮询的例子:

(function poll(){
  $.ajax({ url: "server", success: function(data){
    //Update your dashboard gauge
    salesGauge.setValue(data.value);

  }, dataType: "json", complete: poll, timeout: 30000 });
})();
Run Code Online (Sandbox Code Playgroud)

谢谢!

javascript polling long-polling

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

ElasticSearch更新不是立竿见影的,你如何等待ElasticSearch完成更新它的索引?

我正在尝试提高针对ElasticSearch进行测试的套件的性能.

测试需要很长时间,因为Elasticsearch在更新后不会立即更新它的索引.例如,以下代码运行时不会引发断言错误.

from elasticsearch import Elasticsearch
elasticsearch = Elasticsearch('es.test')

# Asumming that this is a clean and empty elasticsearch instance
elasticsearch.update(
     index='blog',
     doc_type=,'blog'
     id=1,
     body={
        ....
    }
)

results = elasticsearch.search()
assert not results
# results are not populated
Run Code Online (Sandbox Code Playgroud)

目前解决这个问题的解决方案是将time.sleep调用放入代码中,以便给ElasticSearch一些时间来更新它的索引.

from time import sleep
from elasticsearch import Elasticsearch
elasticsearch = Elasticsearch('es.test')

# Asumming that this is a clean and empty elasticsearch instance
elasticsearch.update(
     index='blog',
     doc_type=,'blog'
     id=1,
     body={
        ....
    }
)

# Don't want to use sleep functions
sleep(1) …
Run Code Online (Sandbox Code Playgroud)

python synchronization polling wait elasticsearch

15
推荐指数
3
解决办法
6149
查看次数