Saya dapat melakukan ini menggunakan dua aplikasi kosong. Kasus penggunaannya adalah mengulang sekumpulan file log csv harian dan memuat data ke dalam tabel temp untuk melakukan beberapa operasi basis data dan menampilkan hasilnya dalam kisi Pengguna memilih tanggal mulai dan tanggal akhir dalam aplikasi kontrol bersama dengan beberapa parameter lain yang akan digunakan untuk memfilter data dari csv. OnValidate dari kontrol menetapkan semua tanggal antara tanggal mulai dan tanggal akhir dalam variabel global yang berisi array dari setiap tanggal. Jadi jika pengguna memilih 28/3 sebagai awal dan 30/3 sebagai akhir, lariknya akan menjadi ~ {‘20220328’, ‘20220329’, ‘20220330’}. Itu cocok dengan format tanggal di nama file csv Kontrol mengalihkan ke aplikasi kosong pertama yang berisi HTML/AJAX, dan itu memanggil aplikasi kosong ke-2 yang menjalankan PHP untuk melakukan tugas Aplikasi kosong kedua memiliki loop 'foreach' yang melewati setiap tanggal dalam larik yang diteruskan dari kontrol asli. Secara bertahap, penghitung setiap kali berputar. Jumlah total file yang akan diproses adalah jumlah anggota array, jadi persentase progres saat ini adalah penghitung dibagi total Pada setiap loop, PHP di kontrol kedua menjalankan prosedur tersimpan di server SQL untuk mengimpor CSV, meneruskan parameter nama file yang didasarkan pada tanggal dalam array Selama setiap putaran, aplikasi kosong kedua menulis persentase selesai dan pesan yang akan ditampilkan di layar ("Sedang memproses file ". $datefilter. “. csv") ke array yang disandikan JSON dalam file teks Aplikasi kosong pertama disegarkan setiap 250 md dan dibaca dari larik JSON di file teks. Ini menggunakan persentase untuk memperbarui bilah kemajuan dan menampilkan pesan di bawahnya Saya yakin saya tidak membuatnya sendiri - beberapa komentar dalam kode pasti ditulis oleh orang lain. Saya menemukannya di sini di forum ini atau menggabungkannya dari sumber online lainnya. Saya akan dengan senang hati membagikan kodenya jika ada yang ingin mencoba mengadaptasinya untuk penggunaan mereka sendiri Ciptakan kemajuan. php<?php // recommended to prevent caching of event data. header('Cache-Control: no-cache'); session_start(); $_SESSION['progress_status'] = 0; ?> <!DOCTYPE html> <html> <head> <title>TODO supply a title</title> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> http://js/jquery.js <!-- Latest compiled and minified CSS --> <link href="css/bootstrap.min.css" rel="stylesheet" type="text/css"/> $(document).ready(function () { function getProgress() { var random = Math.random(1000); $.post('progress_status.php', {random: random}, function (status) { var progressBar = $(".progress-bar"); progressBar.attr('aria-valuenow', status); progressBar.css('width', status + '%'); progressBar.html(status + '%'); if (status </head> <body> <?php // recommended to prevent caching of event data. header('Cache-Control: no-cache'); $_SESSION['progress_status'] = 0; for ($i = 1; $i <= 100; $i++) { session_start(); $_SESSION['progress_status'] = $i; session_write_close(); sleep(1); } ?> Buat progress_status. php <?php // recommended to prevent caching of event data. header('Cache-Control: no-cache'); session_start(); echo $_SESSION['progress_status']; ?> Bagikan iniSeperti iniSuka Memuat. |