我在使用 道场。xhrPost 要送出阿贾克斯的请求
该呼吁是由一个包裹 function sendRequest()

我现在连续(每3秒)发送相同的ajax后的服务器
我如何可以实现服务器调查与道场?我基本上需要电话 sendRequest() 每3秒

有帮助吗?

解决方案

我不相信道场具有内置的轮询方法,所以这里有一个通用的方法是适用于整个框架

var Poll = function(pollFunction, intervalTime) {
    var intervalId = null;

    this.start = function(newPollFunction, newIntervalTime) {
        pollFunction = newPollFunction || pollFunction;
        intervalTime = newIntervalTime || intervalTime;

        if ( intervalId ) {
            this.stop();
        }

        intervalId = setInterval(pollFunction, intervalTime);
    };

    this.stop = function() {
        clearInterval(intervalId);
    };
};

用法:

var p = new Poll(function() { console.log("hi!"); }, 1000);
p.start();
setTimeout(function() { p.stop();}, 5000);

或者你的情况:

var p = new Poll(sendRequest, 3000);
p.start();

如果你想以此为道场包,那么下面是一个很小的延伸:

dojo.provide("Poll");

dojo.declare("Poll", null, {
    intervalId:   null,
    pollFunction: null,
    intervalTime: null,

    constructor: function(newPollFunction, newIntervalTime) {
        this.pollFunction = newPollFunction;
        this.intervalTime = newIntervalTime;
    },

    start: function(newPollFunction, newIntervalTime) {
        this.pollFunction = newPollFunction || this.pollFunction;
        this.intervalTime = newIntervalTime || this.intervalTime;

        this.stop();
        this.intervalId = setInterval(this.pollFunction, this.intervalTime);
    },

    stop: function() {
        clearInterval(this.intervalId);
    }
});

用法:

var p = new Poll(function() {console.log("hi");}, 250);
p.start();
setTimeout(dojo.hitch(p, p.stop), 1000);

其他提示

我已经找到了好做这样的:

  1. 有一个变量,其中包含一个空阵列(队)
  2. 若第一轮询,在每个投票,推动一个新的对象(与调查的参数)列入(队);你也可以压缩调查的倒塌对象,用相同的参数纳入一个单一目标;你甚至可以把处理程序功能为这些对象
  3. 有一个定时器检查队列;如果没有,返回
  4. 如果那里是一个悬而未决的对象在队列中,检查,如果已经有一个待定把操作,没有返回,只是等待,-你不想要太多的把未决的同时,一些设备(例如iPad)呛上它
  5. 如果没有未决的把操作队的第一次民意调查对象和xhrGet它

受益于这一程序是,你可以轻松油门调查的时间间隔,当把某些行动时,可以很容易地实现私有化投票的请求。

要不断更新你的网格您可以在网格的“刷新完成”回调函数的ajax请求。

yourGrid.on('dgrid-refresh-complete', function(event) { 

//Ajax request fireing every 3 sec


}
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top