Rumah > hujung hadapan web > tutorial js > Bagaimanakah Kami Boleh Mengesan Selesai Muat Turun Fail Penyemak Imbas Tanpa Peristiwa Penyemak Imbas?

Bagaimanakah Kami Boleh Mengesan Selesai Muat Turun Fail Penyemak Imbas Tanpa Peristiwa Penyemak Imbas?

Barbara Streisand
Lepaskan: 2024-12-23 21:11:14
asal
463 orang telah melayarinya

How Can We Reliably Detect Browser File Download Completion Without Browser Events?

Mengesan Selesai Muat Turun Fail Penyemak Imbas

Pernyataan Masalah

Halaman yang memaparkan mekanisme muat turun fail dinamik memerlukan penunjuk visual untuk isyarat apabila muat turun selesai. Walau bagaimanapun, penyemak imbas tidak selalu mencetuskan peristiwa untuk menunjukkan penerimaan fail apabila dialog "Simpan" muncul.

Penghadan Respons Pelayan

Peruntukan "Pelupusan Kandungan: lampiran" mengarahkan pelayar untuk memaparkan dialog "Simpan", tetapi ia menyekat pemuatan iframe yang digunakan untuk acara pemantauan.

Cadangan Penyelesaian

Melaksanakan penyelesaian berasaskan pelanggan yang memanfaatkan JavaScript dan kuki sebelah pelayan:

Algoritma Pelanggan

  1. Jana token unik.
  2. Serahkan permintaan muat turun dengan token.
  3. Paparkan penunjuk "menunggu".
  4. Tinjau pelayan pada selang masa yang tetap untuk kuki bernama "fileDownloadToken" yang sepadan dengan token.
  5. Jika kuki ditemui, alih keluar penunjuk "menunggu".

Pelayan Algoritma

  1. Ekstrak token daripada permintaan.
  2. Buat kuki dengan nama "fileDownloadToken" dan tetapkan nilainya kepada token yang diterima.

Contoh Pelaksanaan

  • JavaScript Bahagian Pelanggan (dipermudahkan)
var downloadToken = setFormToken();

var downloadTimer = setInterval(function() {
  var token = getCookie("fileDownloadToken");

  if(token == downloadToken) {
    unblockSubmit();
  }
}, 1000);
Salin selepas log masuk
  • PHP Bahagian Pelayan (dipermudahkan)
// Set a cookie to unblock the submit button when download starts
$this->setCookieToken("downloadToken", $_GET["downloadToken"]);

$result = $this->sendFile();
Salin selepas log masuk

Faedah

  • Tidak memerlukan penciptaan fail sementara.
  • Mengesan kesediaan muat turun fail tanpa bergantung pada pendengar acara.
  • Boleh disesuaikan dengan nama token dan kuki tertentu tetapan.

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

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan