2

我一直在做很多搜索,但我认为我找不到我要找的东西。

我有一个类似于 twitter 工作方式的系统,您需要通过单击按钮添加(或在 Twitter 中关注)多个人。

因此,例如,每次我单击下面的“添加”按钮时,它都会发出 AJAX 请求将它们添加到数据库中。

<ul>
    <li>Ben <a href="#" onclick="return addPerson(1);">Add</a></li>
    <li>Sarah <a href="#" onclick="return addPerson(2);">Add</a></li>
    <li>Chantelle <a href="#" onclick="return addPerson(3);">Add</a></li>
    <li>Alan <a href="#" onclick="return addPerson(4);">Add</a></li>
</ul>

现在,如果我一个接一个地为每个人单击添加按钮,我认为为每个人排队一个 ajax 请求不会很好地利用资源。另外它会很慢。

在我单击每个“添加”按钮后,我在想的可能是延迟或类似的东西。所以它记录了我点击的人的所有ID,并为所有点击的人发送一个ajax请求。

是否有现有的脚本,或者你能推荐我如何做到这一点?

4

1 回答 1

3

这样的事情会奏效吗?

var sendDelay;
var peopleToSend = [];
addPerson = function(id) {
   if (sendDelay!=null) {
      clearTimeout(sendDelay);  // Clear timeout
   }
   sendDelay=setTimeout(addPersonDelayComplete,2000);  // Reset timeout
   peopleToSend.push(id);  // Add person to array
}

addPersonDelayComplete = function() {
   // Send the people in peopleToSend in a single ajax call here
   peopleToSend.length = 0;  // Reset the array
 }
于 2012-04-24T03:08:51.237 回答