Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/402.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/25.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_Reactjs - Fatal编程技术网

Javascript中按键事件的限制

Javascript中按键事件的限制,javascript,reactjs,Javascript,Reactjs,我有一个react应用程序,我有一个事件侦听器集,这样当用户键入时,就会触发autosave函数。问题是,我不希望每个事件都触发api调用。理想情况下,当用户键入时,我希望它每隔3秒左右轮询一次API 我目前有以下代码: window.setTimeout(function() { window.setInterval(function() { console.log(data); this.actions.autoSave(data); }, 3000); }, 3

我有一个react应用程序,我有一个事件侦听器集,这样当用户键入时,就会触发autosave函数。问题是,我不希望每个事件都触发api调用。理想情况下,当用户键入时,我希望它每隔3秒左右轮询一次API

我目前有以下代码:

 window.setTimeout(function() {
  window.setInterval(function() {
    console.log(data);
    this.actions.autoSave(data); 
  }, 3000);
}, 3000);

你可以想象,这不是我想要的。所以我想知道最好的方法是什么

这是一个通用的油门功能:

var functionName = (function () {
    'use strict';

    var timeWindow = 500; // time in ms
    var lastExecution = new Date((new Date()).getTime() - timeWindow);

    var functionName = function (args) {
         // your code goes here
    };

    return function () {
        if ((lastExecution.getTime() + timeWindow) <= (new Date()).getTime()) {
            lastExecution = new Date();
            return functionName.apply(this, arguments);
        }
    };
}());
var functionName=(函数(){
"严格使用",;
var timeWindow=500;//以毫秒为单位的时间
var lastExecution=新日期((新日期()).getTime()-timeWindow);
var functionName=函数(args){
//你的密码在这里
};
返回函数(){

如果((lastExecution.getTime()+timeWindow)这是一个通用的节流函数:

var functionName = (function () {
    'use strict';

    var timeWindow = 500; // time in ms
    var lastExecution = new Date((new Date()).getTime() - timeWindow);

    var functionName = function (args) {
         // your code goes here
    };

    return function () {
        if ((lastExecution.getTime() + timeWindow) <= (new Date()).getTime()) {
            lastExecution = new Date();
            return functionName.apply(this, arguments);
        }
    };
}());
var functionName=(函数(){
"严格使用",;
var timeWindow=500;//以毫秒为单位的时间
var lastExecution=新日期((新日期()).getTime()-timeWindow);
var functionName=函数(args){
//你的密码在这里
};
返回函数(){
如果((lastExecution.getTime()+timeWindow)示例从

示例从


我是从网上的某个地方得到的;如果可能的话,我会找到并发布链接。实际上,它看起来像是一种普通的、共享的、公共领域的模式。从谷歌搜索中可以看到很多基本相同的东西。我是从网上的某个地方得到的;如果可能的话,我会找到并发布链接。实际上,它看起来像是一种普通的、共享的、公共领域的模式从谷歌搜索中可以看到很多基本相同的东西。