0

我的网页上有很多提交按钮。我试过这个:

javascript:var x=document.getElementsByTagName("input");
for(var i=0;i<x.length;i++) {
   if (x[i].type == 'submit') {
      x[i].click();
   }
};

它开始提交,但做得非常快。或者很多次,我的网页冻结。我想在每次提交之间暂停或休眠。我也在堆栈溢出中搜索并阅读了很多线程。JavaScript 没有暂停或睡眠。有一些替代方案,例如 Timeout,但许多人建议不要使用它。我知道尝试在两者之间暂停或睡觉不是一个好主意。

所以,我现在没有主意了。我将如何一一进行这些多次提交?谁能给我正确的方向?提前致谢。

4

2 回答 2

0

除非您非常幸运,否则这将不起作用。每次提交都会导致页面重新加载。如果您再次提交太快,第一页加载将被中止,这可能意味着任何相关的处理要么被放弃,要么仅部分完成。您需要等待每次提交完成后再发送下一次,或者在一个块中发送所有数据。

有时添加 50ms 的任意延迟可能就足够了,但在其他情况下,它会不必要地长,或者不够长。

或者,您可以使用 AJAX 发送数据,等待每个响应。这会更可靠,但由于每次提交都需要往返加上处理时间,因此提交的总时间可能会从 100 毫秒增加到 1.5 到 2 秒。

与单次提交相比,所有数据都可以在第一次提交中发送 - 100 毫秒。

于 2013-10-10T09:39:59.193 回答
0

尝试小延迟,50 毫秒左右

 javascript:var x=document.getElementsByTagName("input");
 for(var i=0;i<x.length;i++) {
    if (x[i].type == 'submit') {
       setTimeout(function() {
          x[i].click();
       }, 50);
    }
 };
于 2013-10-10T08:45:32.467 回答