Rumah  >  Soal Jawab  >  teks badan

Bagaimana untuk memaksa kemas kini paparan masa nyata dalam javascript?

<p>Bagaimanakah saya boleh mendapatkan javascript untuk mengemas kini halaman web saya dalam masa nyata? Nampaknya penyemak imbas Chrome saya sedang meletakkan semua kerja pemprosesan ke dalam pengiraan yang diperlukan dan kemudian mengemas kini halaman web. Di bawah ialah fail HTML ujian yang paling mudah. Saya lebih suka melihat pengiraan berurutan (daripada hanya melompat ke nilai akhir). Apakah yang perlu saya gantikan <code>display.innerHTML = i;</code> </p> <p>Saya harap jawapannya bukan untuk memecahkan pengiraan saya kepada banyak pengiraan menggunakan setInterval atau sebagainya. Sudah tentu gangguan yang dibuat ini akan membolehkan paparan dikemas kini, tetapi saya tidak suka menguruskannya dengan terperinci ... Saya harap ada ciri paparan "blok" yang tersedia supaya pengiraan di sini tidak berterusan sehingga penyemak imbas Memaparkan kemas kini paparan saya (atau adakah terdapat arahan "refresh" seperti yang disediakan oleh C?). Saya boleh menggunakan konsol pembangun jika perlu, tetapi itu juga tidak sesuai. </p> <pre class="brush:php;toolbar:false;"><!DOCTYPE html> <html> <badan> <p id="Paparan"></p> <skrip> paparan const = document.getElementById("Paparan"); untuk (biar i = 0; i <= 3000000000; i++) { jika (i % 100000000 == 0) paparan.innerHTML = i } </skrip> </badan> </html></pre></p>
P粉148434742P粉148434742410 hari yang lalu501

membalas semua(1)saya akan balas

  • P粉369196603

    P粉3691966032023-09-05 10:50:29

    requestAnimationFrameCara

    Gunakan requestAnimationFrame atau setTimeout apabila keluar dari gelung untuk membenarkan UI dikemas kini, kemudian sambung semula gelung di tempat ia berhenti.

    const display = document.getElementById("Display");
    
    function process() {
    
      let index = 0;
      const max = 3000000000;
      
      function run () { 
        while (index <= max) {
          if (index % 100000000 == 0) {
            display.innerHTML = index;
            break;
          }
          index++;
        }
        if (index++ <= max) window.requestAnimationFrame(run);
      }
      
      run();
    }
    
    process();
    <p id="Display"></p>


    Kaedah Pekerja Web

    Masukkan algoritma anda ke dalam fail JS dan mesej akan disiarkan apabila ia perlu dikemas kini

    for (let i = 0; i <= 3000000000; i++) {
        if (i %   100000000 == 0) self.postMessage(i);
    }
    

    Dan dalam kod UI anda.

    const display  = document.getElementById("Display");
    const myWorker = new Worker("workerAlgorithm.js");
    myWorker.onmessage = (e) => {
      display.innerHTML = e.data;
    };
    

    balas
    0
  • Batalbalas