Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何计算请求所需的时间?_Javascript_Jquery_Html_Ajax - Fatal编程技术网

Javascript 如何计算请求所需的时间?

Javascript 如何计算请求所需的时间?,javascript,jquery,html,ajax,Javascript,Jquery,Html,Ajax,这就是我要做的: 1.用户单击其中一个选中图标。2.那个图标开始闪烁。3.一段时间后(请求时间)闪烁停止。4.然后检查className添加 这是我的代码,它也可以工作: 功能睡眠(时间){ 返回新承诺((resolve)=>setTimeout(resolve,time)); } 功能闪烁(时间){ $(this).fadeToggle(时间,函数(){ 如果(++n{ $('.fa check').not(this.removeClass('checked'); $(this.toggle

这就是我要做的:

1.用户单击其中一个选中图标。2.那个图标开始闪烁。3.一段时间后(请求时间)闪烁停止。4.然后检查className添加

这是我的代码,它也可以工作:

功能睡眠(时间){
返回新承诺((resolve)=>setTimeout(resolve,time));
}
功能闪烁(时间){
$(this).fadeToggle(时间,函数(){
如果(++n{
$('.fa check').not(this.removeClass('checked');
$(this.toggleClass('checked');
});
});
.fa检查{
颜色:#aaa;
光标:指针;
}
.fa-check.checked{
颜色:#44b449;
}

答复1


答复2


答复3


所以,从评论判断,你真正需要的是一个更好的眼罩。看看这个:

var Blinker = function(el, time) {
    this.el = el;
    this.time = time;
    this.running = false;
    this._fader = this._fade.bind(this);
};
Blinker.prototype = {
    _fade: function() {
        if (!this.running) {
            return;
        }
        this.el.fadeToggle(this.time, this._fader);
    },
    start: function() {
        this.running = true;
        this._fader();
    },
    stop: function() {
        this.running = false;
    }
};
使用方法:

$("body").on('click', '.fa-check', function(e) {
    var blinker = new Blinker($(this), 100);
    blinker.start();
    $.ajax({
        // some other code
        complete: function() {
            blinker.stop();
        }
    });
});

所以,从评论来看,你真正需要的是一个更好的眼罩。看看这个:

var Blinker = function(el, time) {
    this.el = el;
    this.time = time;
    this.running = false;
    this._fader = this._fade.bind(this);
};
Blinker.prototype = {
    _fade: function() {
        if (!this.running) {
            return;
        }
        this.el.fadeToggle(this.time, this._fader);
    },
    start: function() {
        this.running = true;
        this._fader();
    },
    stop: function() {
        this.running = false;
    }
};
使用方法:

$("body").on('click', '.fa-check', function(e) {
    var blinker = new Blinker($(this), 100);
    blinker.start();
    $.ajax({
        // some other code
        complete: function() {
            blinker.stop();
        }
    });
});

如果我没有弄错你的问题,你就无法预测与远程服务器通话所需的时间。我的答案是,你不能(除非你在一个非常特殊的环境中,但答案是,你不应该)

没有办法知道一个请求需要多长时间。这是因为互联网的本质、不同的路由、服务器不同方面的不同负载等等

实际上,您不想做的是在服务器响应时使用回调来执行某些操作。此回调可用于停止闪烁图标

这完全可以在$.ajax的成功回调中实现


尝试对异步数据使用回调或承诺。轮询更新可能被视为一种反模式。

如果我正确理解了您的问题,您就不需要预测与远程服务器通信所需的时间。我的答案是,你不能(除非你在一个非常特殊的环境中,但答案是,你不应该)

没有办法知道一个请求需要多长时间。这是因为互联网的本质、不同的路由、服务器不同方面的不同负载等等

实际上,您不想做的是在服务器响应时使用回调来执行某些操作。此回调可用于停止闪烁图标

这完全可以在$.ajax的成功回调中实现


尝试对异步数据使用回调或承诺。轮询更新可能被认为是一种反模式。

我不理解这个问题。显然,您无法计算请求所需的时间。你不知道未来。你可以预测一下,但我不明白你为什么要从这个开始?@freakish这就是我要做的:1.用户点击其中一个选中的图标。2.那个图标开始闪烁。3.一段时间后(请求时间)闪烁停止。4.然后选中className adds。在成功(或完成)处理程序中执行步骤3和4。有什么问题吗?@当我无法停止闪烁时,会有点奇怪……问题在于你的
闪烁功能。它不允许停止(一旦调用,它就会泄漏内存)。另外,它失败是因为
淡入淡出切换处理程序中的
$(此)
不同。您必须将其重写为其他对象,即支持
blinker.start()
blinker.stop()
的对象,然后您将在请求之前和之后分别调用它们。我不理解这个问题。显然,您无法计算请求所需的时间。你不知道未来。你可以预测一下,但我不明白你为什么要从这个开始?@freakish这就是我要做的:1.用户点击其中一个选中的图标。2.那个图标开始闪烁。3.一段时间后(请求时间)闪烁停止。4.然后选中className adds。在成功(或完成)处理程序中执行步骤3和4。有什么问题吗?@当我无法停止闪烁时,会有点奇怪……问题在于你的
闪烁功能。它不允许停止(一旦调用,它就会泄漏内存)。另外,它失败是因为
淡入淡出切换处理程序中的
$(此)
不同。您必须将其重写为其他对象,即支持
blinker.start()
blinker.stop()
的对象,然后在请求之前和之后分别调用它们。只有两个问题:1。为什么要将
time
参数传递给该函数?那是什么时候?我指的是这个
新的眨眼器($(这个),100)中的
100
?2.
淡入淡出:
开头的下划线是什么?
时间是淡入淡出所需的时间(例如闪烁频率)。下划线
只是“私有”函数的命名约定。只是为了表明你不应该直接使用
\u fade
。我明白了。。你能告诉我你为什么要定义一个对象来做这个吗?我想你可以定义一个简单的函数。。我说的对吗?不对,因为你必须至少运行
变量,它(逻辑上)是一个闪烁状态。您可以通过运行global
变量来实现这一点,但这太可怕了,可能会导致棘手的问题。只有两个问题:1。为什么要将
time
参数传递给该函数?那是什么时候?我指的是这个
新的眨眼器($(这个),100)中的
100
?2.
淡入淡出:
开头的下划线是什么?
时间是淡入淡出所需的时间(例如闪烁频率)。下划线