使用 Javascript 进行速率限制并将 ajax 调用排队为每 15 秒一次

2024-04-12

我有一个应用程序,每次用户执行某些操作时都会自动发送推文......

如果用户愿意,可以轻松地每秒执行一次该操作。

Twitter 的速率限制表示,它关注 15 分钟内发生了多少条推文。从技术上讲,我认为我总是低于 15 分钟标记,但 Twitter 似乎也说“嘿,你可以在 15 分钟内发布 15 个帖子,但不能在 15 秒内发布 15 个帖子”……我认为这是合理的……

我想在javascript方面解决这个问题。我想要一个函数数组,将其添加到而不是实际调用 ajax,然后进行 setTimeout 查找,检查数组开头是否有函数调用,运行该函数,将其删除从数组中删除并等待 15 秒再次执行。

这将有助于随着时间的推移将推文(ajax 调用)减慢到合理的程度。

这似乎是我应该用库来解决的问题,但我见过的节流库似乎已经做好了准备忽略而不是存储 http://benalman.com/projects/jquery-throttle-debounce-plugin/中间请求。这jquery中的队列函数 http://api.jquery.com/jQuery.queue/似乎是用于动画并且看起来过于复杂,但可能是正确的答案......

想法?


尝试一下这个

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Queue things</title>
<script type="text/javascript" src="http://code.jquery.com/jquery-1.10.2.min.js"></script>
<script type="text/javascript">
var myQueue=[],msgNum=0;
function queueIt(item) {
  myQueue.push({ "item":item, "ts":new Date().getTime()});
}
function processQueue() {
  if (myQueue.length===0) return;
  var obj = myQueue.shift();
  $("#content").append('<br/>'+obj.item+" "+diff(obj.ts));
}
function diff(ts) {
    var t = new Date().getTime()-ts;
    return t + "ms ago";
}
$(function(){
    $("#clickMe").on("click",function() {
        msgNum++;
        queueIt("Message #"+msgNum);
    });
    setInterval(processQueue,15000);
});

</script>
</head>
<body>
<input type="button" id="clickMe" value="Queue something"/>
<div id="content"></div>
</body>
</html>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 Javascript 进行速率限制并将 ajax 调用排队为每 15 秒一次 的相关文章

  • SAPUI5 等待延迟对象 // 等待 .done() 函数

    我知道有几个线程对此进行讨论 但我认为在 SAPUI5 上下文中没有线程回答有关 SAPUI5 中的延迟 同步调用的一般主题 在我的控制器中我得到 test function var dfd Deferred var sServiceUrl
  • 尝试注册 RCTBridgeModule 类 RCTFileReaderModule

    尝试为名称 FileReaderModule 注册 RCTBridgeModule 类 RCTFileReaderModule 但该名称已由类 FileReaderModule 注册 尝试使用命令react native run ios在i
  • 我需要一个 jQuery Autocomplete 使用 ajax 返回 id 和 name 的示例

    我需要一个示例 说明如何编写 jQuery 自动完成代码来填充product id 同时显示调用ajax 页面 remote php 的product name
  • 用于传输命名参数和正文的云端点资源属性不起作用

    我正在尝试通过gapi client rpc调用实现对谷歌云端点的调用 如文档中所述 和Google Cloud Endpoints 使用 JS 客户端进行调用 传递参数和 JSON 正文 https stackoverflow com q
  • 测试 jQuery UI 工具提示是否打开

    我正在尝试控制自动打开和关闭jQuery 工具提示 http api jqueryui com tooltip 如何测试工具提示的当前状态是否为打开 我正在使用所有内容的最新版本 Thanks 您可以尝试检查是否有任何课程ui toolti
  • 将事件添加到 Google Maps API InfoWindow 内的元素

    我想在 Google Maps API v3 InfoWindow 内放置一个带有输入字段和提交按钮的表单 提交后 我想调用一个函数 该函数使用输入字段中输入的地址启动方向服务 这是我的代码 我目前只测试方向事件是否被触发 我已经编写了完整
  • 修剪日期格式 PrimeNG 日历 - 删除时间戳、角度反应形式

    我将以下内容推入我的反应形式 obj 中2016 01 01T00 00 00 000Z但我想要以下2016 01 01 有谁知道有一个内置函数可以实现上述目的 我已经搜索过文档here https www primefaces org p
  • 从 html5

    我正在寻找一种方法来根据用户代理字符串将控件属性添加到视频标签 我不希望在 iPad 和 Android 之外的任何浏览器或设备上出现控件属性 所以我认为用户代理是最好的识别方法 因为 ipad 和 android 一词出现在各自的 UA
  • 如何避免 TypeScript 中出现虚假的“未使用参数”警告

    我遇到过很多次这种情况 最后决定弄清楚正确的方法是什么 如果我有一个声明方法的抽象父类 然后一些具体子类在其实现中实现真正的逻辑 并且显然使用方法参数 但某些子类不需要在该方法中执行任何操作 因此不要使用方法参数 那些不必执行任何操作的方法
  • 如何在美人鱼节点描述中添加链接?

    我想 如下图所示 div class mermaid graph TD A hello B an b important b link A gt B div 在下面添加实际链接link指向http google com 我尝试将相关节点修改
  • 在 JQuery ui 自动完成中显示图像

    我有一个带有 JQuery ui 自动完成功能的脚本 可以完美运行 有一个显示用户名字和姓氏的搜索过程 但在我的数据库中 还有用户的图片 我想将其显示在带有名字和姓氏的建议中 数据库中pic包含图片url 剧本 function searc
  • Intro.js 2页然后返回首页

    我在用intro js http introjs com 为我的网站创建一个小介绍 我希望游览从第 1 页 主页 2 另一页 然后回到第 1 页 主页 我已经成功地从第 1 2 页开始 但不确定如何让它返回到第 1 页 我对 javascr
  • 如何使用javascript从word文档页面中删除表格设计? Word js 插件

    我正在从表格 html 的 word 文档最后一页插入表格设计 我怎样才能删除它 这是我的代码 async function NewMap try await Word run async context gt html to word h
  • Angularjs - 将 True/False 显示为 Yes/No

    有没有一种简单的方法可以将真 假值显示为是 否 我正在从数据库检索包含以下内容的 JSON 对象 对象 WithCertification true 这是 HTML 有认证 elem WithCertification 正在显示这个 认证真
  • 元素不适应 Firefox 上的

    使用 ES6 ish D3js 模块运行 Angular 6 应用程序会导致 Firefox 出现问题 Chromium Chrome Safari 和 IE Edge 工作正常 伪代码看起来类似于 生产代码可以在下面找到
  • jquery ajax加载后丢失CSS

    大家知道如何解决 load Ajax 请求后的 css 问题吗 例如 如果我想从网页加载 DIV 在我的 Ajax 请求之后 container load path to div div id 我丢失了与该 div 关联的所有 css 和脚
  • Babel/RequireJS + typeof“RangeError:超出最大调用堆栈大小”

    我有一个非常基本的 JS 错误 我很羞愧无法解决它 我正在使用 ES6 和 Babel 进行开发 并且正在做一些实验 请注意 我在 Babel 中使用了这些参数 presets es2015 plugins transform es2015
  • 在firefox上用js改变表单方法

    我需要使用 javascript jQuery 或纯 更改表单的方法属性 我的表单有 method post 我尝试用以下方法更改它 submit button click function var url input id url val
  • 有没有办法从画布上清除一个元素而不消除其他元素?

    我正在使用画布构建页面加载器 并使用 es6 类 虽然目前我无法使其正常工作 原因之一是我找不到清除画布的方法进展 到目前为止 这是我的代码 class Loader constructor width height this width
  • 使用 javascript/jquery 从数据库格式化日期的正确方法

    我正在调用包含日期时间数据类型的数据库 日期看起来像这样 2005 05 23 16 06 00 000 当用户从列表中选择某个项目时 我想在表格中显示它 我调用我的控制器操作并返回所有时间的 Json 并将它们放入表中 问题是日期完全错误

随机推荐

  • 当鼠标悬停在放置目标上时如何更改拖放光标

    我有一个应用程序 其中包含一个取消归档 文件属性 文件的放置目标 我想将表单的 DragEnter 事件中的鼠标光标更改为我作为嵌入资源的自定义光标 cur 放置目标是带有目标图像的透明形式 整个表格是放置目标 我知道当我控制拖动源时可以使
  • 通过 AJAX 将动态字段添加到嵌套表单

    我一直在我的应用程序上观看和重现这些轨道广播 196 嵌套模型表单第 1 部分 http railscasts com episodes 196 nested model form part 1 and 197 嵌套模型形式 第 2 部分
  • 如何在 R 中堆叠数据框[重复]

    这个问题在这里已经有答案了 我有一个数据框 我想将其堆叠在 R 中 这样我最终会得到三列 下面是当前格式的一些示例数据 gt dput df structure list Day c d1 d2 d3 d4 d5 d6 d7 d8 d9 d
  • 使用 Java 代理将类添加到类路径

    我正在使用 Java Agent 和 Javassist 向某些 JDK 类添加一些日志记录 本质上 当系统加载一些 TLS 类时 Javassist 会向它们添加一些额外的字节码 以帮助我调试一些连接问题 考虑到此类包含在代理 jar 中
  • “poly()”如何生成正交多项式?如何理解返回的“coefs”?

    我对正交多项式的理解是它们采用以下形式 y x a1 a2 x c1 a3 x c2 x c3 a4 x c4 x c5 x c6 最多达到所需的术语数 where a1 a2 etc是每个正交项的系数 拟合之间有所不同 并且c1 c2 e
  • vim - 从 vim 撤消文件恢复丢失的文件

    我不小心删除了 vimrc 这花了我几周的时间来配置 我仍然保留撤消文件 我认为这是恢复它的唯一方法 不幸的是 vim 现在不允许我撤消 我猜是因为我当前的 vimrc 版本无法使用最后一个撤消步骤 修补 另外 vim 撤消文件是经过编码的
  • 如何在最后一个单元格上启动 UITableView?

    在Apple的消息应用程序中 当您单击通讯员的姓名并切换到对话的表格视图 每条消息都有气球 时 表格会一直滚动到最后 没有动画或任何东西 它就在那里 同样 在 Tweetie 2 中 当您加载推文视图时 它会出现在您上次查看的位置 没有动画
  • 检查列表是否包含类型?

    检查列表中是否存在某种类型的最快方法是什么 我希望我能做到以下几点 class Generic object def class SubclassOne Generic def class SubclassOne Generic def t
  • 如何处理 MVC 中的页面流(特别是 asp.net)

    如果您必须在 mvc 中提供类似于表单输入体验的向导 您将如何抽象页面流 研究重定向后获取模式 http weblogs asp net mhawley archive tags MVC default aspx http weblogs
  • sql 按日期分组,不带时间

    我是 sql 新手 我想创建一个查询来计算我每天的所有文章 ID 但问题是日期列也包含时间 那么我如何才能使查询仅按日期分组而无需时间 例如 id article id date timestamp 1 22 2014 01 10 13 3
  • GIT 不跟踪文件

    我已经在 AIX 6 1 上设置了 GIT 但遇到了问题 我遵循的步骤顺序如下所示 我创建一个文件夹 进入文件夹并初始化非裸存储库 初始化用户名和用户电子邮件 创建一个名为index html 的文件 并在该文件中包含一些数据 创建一个名为
  • 对小数的最快素数测试

    我在业余时间玩了 Euler 项目 现在我需要做一些重构 我已经实施了 Miller Rabin 以及一些筛子 我以前听说过 对于较小的数量 例如数百万以下 筛子实际上更快 有人有这方面的信息吗 谷歌并没有多大帮助 Yes you ll f
  • Tensorflow动态RNN(LSTM):如何格式化输入?

    我已获得这种格式的一些数据以及以下详细信息 person1 day1 feature1 feature2 featureN label person1 day2 feature1 feature2 featureN label person
  • 设置非 Office 文件的 Windows 文件属性

    我想在 NET 代码中设置文件的属性 我尝试过使用 DSOFile v2 1 如下所示 var properties new OleDocumentProperties try properties Open filePath proper
  • java中如何从字符串中提取子字符串

    亲爱的大家 我有一个像这样的字符串 1name john 2name lice 3name mike 我想输出它的子字符串 1name john 它在字符串中的位置不固定 我也使用子字符串方法但无法获取它 那么你能帮我一个忙吗 谢谢 Str
  • C# - 静态类型不能用作类型参数

    我有一个通用类可以帮助我检查参数值 internal sealed class Argument
  • Eclipse - 当涉及 Maven 时“作为 Java 应用程序运行”

    我有一个 Maven 项目 作为activeByDefault我有生产资料 看来我找不到使用临时配置文件在 Eclipse 中将其作为应用程序运行的方法 除非我将activeByDefault在暂存配置文件中 有没有办法配置这个 这样我就不
  • IE 脚本和通知设置之间的差异

    这些 IE 设置之间有什么区别 Disable script debugging Internet Explorer Disable script debugging Other Display a notification about e
  • 如何对这个(正确)抛出异常的异步方法进行单元测试?

    我在界面中有以下方法 Task
  • 使用 Javascript 进行速率限制并将 ajax 调用排队为每 15 秒一次

    我有一个应用程序 每次用户执行某些操作时都会自动发送推文 如果用户愿意 可以轻松地每秒执行一次该操作 Twitter 的速率限制表示 它关注 15 分钟内发生了多少条推文 从技术上讲 我认为我总是低于 15 分钟标记 但 Twitter 似