0

私のウェブページにはたくさんの送信ボタンがあります。私はこれを試しました:

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

送信を開始しますが、非常に高速です。または何度も、私の Web ページがフリーズします。各送信の間に一時停止またはスリープがあると思いました。私もスタックオーバーフローでたくさんのスレッドを探して読みました。JavaScript には一時停止やスリープはありません。Timeout のようないくつかの代替手段がありますが、多くの人がそれを使用しないように提案しています。途中で一時停止したり、寝たりするのはよくないことだと理解しました。

だから、私は今アイデアがありません。これらの複数の送信を 1 つずつ行うにはどうすればよいですか? 誰かが私に正しい方向を教えてもらえますか? 前もって感謝します。

4

2 に答える 2

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 に答える
0

よほどの運がない限り、これはうまくいきません。送信ごとにページがリロードされます。再度送信するのが速すぎると、最初のページの読み込みが中止されます。これは、関連する処理が中止されるか、部分的にしか完了しないことを意味します。各送信が完了するのを待ってから次の送信を送信するか、すべてのデータを 1 つのブロックで送信する必要があります。

たとえば 50 ミリ秒の任意の遅延を追加するだけで十分な場合もありますが、不必要に長くなったり、十分に長くなかったりする場合もあります。

または、AJAX を使用してデータを送信し、各応答を待つこともできます。これはより信頼性が高くなりますが、送信ごとに往復と処理時間が必要になるため、送信にかかる合計時間は、たとえば 100 ミリ秒から 1.5 ~ 2 秒に増加する可能性があります。

これを、最初の送信ですべてのデータを送信できる 1 回の送信 (100 ミリ秒) と比較してください。

于 2013-10-10T09:39:59.193 に答える