【发布时间】:2011-12-07 15:23:20
【问题描述】:
使用 jQuery,我有一个链接集合,每个链接都有一个 .refresh 类
我想创建一个函数,在每个链接上触发点击事件,每次点击之间有 10 秒的延迟。
以下代码同时触发每个链接的点击事件
function refreshAllPeople() {
$('.refresh').each(function(){
window.setTimeout($(this).click(), 10000);
})
}
这是每个链接的详细信息
每个链接都发送一个 HTTP 请求。我需要延迟以避免“连接过多”错误
<a data-remote="true" class="refresh" href="http://localhost:5000/person/refresh/3224">Refresh</a>
对于非 Rails 开发人员,Rails 会分别找到每个 data-remote="true" 并使用 AJAX 请求操作链接的 href 属性覆盖点击操作。
一切都发生在handleRemote函数here中。
【问题讨论】:
-
从用户的角度来看,这听起来很奇怪。人们希望当他们点击某些东西时会立即发生某些事情,或者至少会看到某种加载图标 - 不必等待 10 秒才能得到响应,甚至不知道发生了什么事情。
-
@Denis,您是要立即触发第一个
click事件还是在最初的 10 秒延迟后触发? -
马上,每次点击发送一个http请求,我需要延迟以避免太多的连接错误
-
啊,所以 10 秒的延迟是任意的 :) 当上一个 AJAX 请求返回时触发下一个
click事件不是更好吗(可能多于或少于 10 秒,但会保证在给定时间只有一个活动请求)? -
@Denis,您能否使用您的
click事件处理程序(执行 AJAX 请求的处理程序)的代码以及您的标记的一小段摘录来更新您的问题,以便我们可以看到你的.refresh元素?
标签: javascript jquery ruby-on-rails