suchen

Heim  >  Fragen und Antworten  >  Hauptteil

Wie kann ich den Bildschirm aktualisieren, bevor die Warnung angezeigt wird?

Ich erstelle eine Schach-Website und möchte eine Benachrichtigung anzeigen, um den Spielern mitzuteilen, wer gewonnen hat. Wenn die Warnung jedoch angezeigt wird, wird die letzte Bewegung erst angezeigt, wenn die Warnung ausgeschaltet wird. Die Warnfunktion befindet sich am Ende des Codes und sollte daher angezeigt werden, nachdem sich die Quelle des Blockbilds geändert hat. Wie kann ich den Bildschirm aktualisieren, bevor die Warnung angezeigt wird? Ich habe oder habe keine Ideen gefunden, wie ich dieses Problem lösen könnte.

P粉764003519P粉764003519233 Tage vor448

Antworte allen(1)Ich werde antworten

  • P粉283559033

    P粉2835590332024-03-31 16:22:38

    requestAnimationFrame()函数将回调排队以在渲染一帧之前立即运行。一旦浏览器开始处理队列,所有对其的进一步调用都会计入之后的帧。

    这意味着我们可以使用它来“等待”一定数量的帧:

    requestAnimationFrame(() => {
      // This callback runs immediately before frame A
    
      requestAnimationFrame(() => {
        // This callback runs immediately before frame B; the frame after A
        
        // ...
      });
    });
    

    我们可以为此编写一个实用函数:

    function waitFrames(n, callback) {
      if (n > 0) {
        // After next frame, wait n-1 frames
        requestAnimationFrame(() => waitFrames(n - 1, callback));
      } else {
        // Wait 0 frames; run before next frame
        requestAnimationFrame(callback);
      }
    }
    

    就您而言,您需要等待 1 帧

    Antwort
    0
  • StornierenAntwort