Rumah >hujung hadapan web >tutorial js >Bagaimanakah Saya Boleh Mengesan Selesai Muat Turun Fail dengan Amanah dalam Penyemak Imbas?

Bagaimanakah Saya Boleh Mengesan Selesai Muat Turun Fail dengan Amanah dalam Penyemak Imbas?

Linda Hamilton
Linda Hamiltonasal
2025-01-05 21:06:49463semak imbas

How Can I Reliably Detect File Download Completion in a Browser?

Kendalikan Pengesanan Selesai Muat Turun Fail

Masalah:

Mengesan apabila penyemak imbas menerima sepenuhnya muat turun fail yang dijana secara dinamik menjadi penting apabila memaparkan penunjuk menunggu. Pada masa ini, menggunakan acara "muatan" iframe gagal menangani isu ini disebabkan ketidakkonsistenan penyemak imbas.

Penyelesaian 1: Pengesahan Token Berasaskan Penyemak Imbas

JavaScript pihak pelanggan penyelesaian melibatkan:

  • Menjana token unik untuk muat turun permintaan.
  • Menyerahkan permintaan dengan token.
  • Memaparkan penunjuk "menunggu".
  • Menetapkan pemasa untuk menyemak secara berkala bagi kuki yang sepadan dengan nilai token.
  • Menyembunyikan penunjuk apabila mencari kuki.

Di bahagian pelayan, algoritma:

  • Menyemak token dalam permintaan.
  • Menetapkan kuki dengan nilai token jika ditemui.

Coretan Kod (JavaScript):

function setFormToken() {
  var downloadToken = new Date().getTime();
  document.getElementById("downloadToken").value = downloadToken;
  return downloadToken;
}

Coretan Kod (PHP):

// Set a cookie to unblock submit button when download begins.
$TOKEN = "downloadToken";
$this->setCookieToken($TOKEN, $_GET[$TOKEN]);

Penyelesaian 2: Tinjauan Pelayan

Sebagai alternatif, pendekatan sisi pelayan melibatkan:

  • Memulakan penciptaan fail.
  • Tinjauan pelayan sehingga selesai.
  • Memuat turun fail sedia.

Kaedah ini mengelak daripada mencipta fail pelayan sementara. Walau bagaimanapun, ia memerlukan komunikasi pelanggan-pelayan semasa tempoh menunggu.

Kebaikan dan Keburukan:

Menggunakan token penyemak imbas membolehkan pengesanan dinamik, tetapi mungkin mempunyai masalah keserasian penyemak imbas . Undian pelayan ialah pilihan yang lebih dipercayai tetapi lebih perlahan.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengesan Selesai Muat Turun Fail dengan Amanah dalam Penyemak Imbas?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn