Rumah hujung hadapan web tutorial js Bagaimanakah Saya Boleh Menstrim Kemas Kini Data Langsung dengan Cekap ke dalam Templat HTML Flask?

Bagaimanakah Saya Boleh Menstrim Kemas Kini Data Langsung dengan Cekap ke dalam Templat HTML Flask?

Dec 09, 2024 pm 04:47 PM

How Can I Efficiently Stream Live Data Updates into Flask HTML Templates?

Menstrim Kemas Kini Data dengan Flask

Menyepadukan aliran data langsung ke dalam templat HTML boleh menimbulkan cabaran kerana sifat statik templat yang diberikan pada pelayan . Walau bagaimanapun, terdapat pendekatan untuk mencapai fungsi ini.

Untuk menstrim data tanpa mengubah suai templat secara dinamik, JavaScript boleh digunakan. Dengan mengeluarkan permintaan kepada titik akhir penstriman, JavaScript pihak klien boleh membaca dan memaparkan data dalam masa nyata. Pendekatan ini memperkenalkan kerumitan tetapi menawarkan kawalan yang lebih besar ke atas penampilan output.

Sebagai contoh, kod berikut menunjukkan cara untuk memaparkan kedua-dua nilai terkini dan log semua nilai yang diterima:

setInterval(() => {
  var latest = document.getElementById('latest');
  var output = document.getElementById('output');
  var xhr = new XMLHttpRequest();
  xhr.open('GET', '{{ url_for('stream') }}');
  xhr.send();
  var position = 0;

  function handleNewData() {
    var messages = xhr.responseText.split('\n');
    messages.slice(position, -1).forEach(function(value) {
      latest.textContent = value;
      var item = document.createElement('li');
      item.textContent = value;
      output.appendChild(item);
    });
    position = messages.length - 1;
  }

  timer = setInterval(function() {
    handleNewData();
    if (xhr.readyState === XMLHttpRequest.DONE) {
      clearInterval(timer);
      latest.textContent = 'Done';
    }
  }, 1000);
}, 1000);
Salin selepas log masuk

Sebagai alternatif,