PHP mengimport cemerlang dan memaparkan bar kemajuan di meja depan
怪我咯2017-05-24 11:34:21
0
3
1347
PHP mengimport excel dan meja depan memaparkan bar kemajuan, sila beri saya nasihat (bukan kemajuan memuat naik fail excel, tetapi bar kemajuan php membaca excel->memproses data->menulis ke mysql)
Ini bergantung pada saiz Excel anda dan masa maksimum yang dibenarkan oleh pelayan untuk permintaan. Saya rasa ia boleh dibahagikan kepada situasi berikut:
Excel sangat kecil, dan import selesai dalam satu atau dua saat - dalam kes ini, cukup sekadar memaparkan bar kemajuan palsu. Contohnya: kemajuan animasi pada detik pertama mencapai 50%, kemajuan pada detik kedua mencapai 75%, kemajuan animasi ketiga mencapai 90%, dan kemudian kemajuan mencapai 100% selepas pelayan kembali OK.
Excel agak besar, tetapi ia boleh disiapkan dalam masa maksimum yang dibenarkan oleh pelayan untuk permintaan -- Dalam kes ini, terdapat beberapa pendekatan:
Untuk menjadi ringkas dan kasar, anggarkan kemajuan pengimportan ke dalam Excel dan simpannya di lokasi tertentu (seperti medan dalam pangkalan data Buat permintaan ajax lain atau EventSource untuk meninjau kemajuan setiap tempoh masa (seperti 500ms). ) dan memaparkannya.
Gunakan sambungan panjang HTTP untuk mengeluarkan kemajuan dalam permintaan untuk mengimport Excel Ingat untuk memuat semula penyemak imbas tepat pada masanya. Pelayar memaparkan animasi kemajuan berdasarkan data yang dikembalikan.
Excel sangat besar atau perniagaannya rumit dan tidak dapat diselesaikan dalam masa maksimum yang dibenarkan oleh pelayan untuk permintaan--Pada masa ini, jika pelayan boleh menjalankan skrip CLI, adalah disyorkan untuk menjalankan skrip CLI untuk import (untuk paparan kemajuan, sila rujuk 2.1) ; Jika tidak, anda perlu membahagikan Excel kepada langkah/masa/bahagian, dan kemudian melaksanakan tugas import langkah demi langkah dalam penyemak imbas, dan memaparkan kemajuan mengikut keputusan yang dibahagikan.
Bolehkah saya mendapatkan jumlah rekod selepas membaca excel? Ya, kemudian hanya kira bilangan rekod yang diproses/jumlah nombor. Tidak, kemudian tinggalkan bar kemajuan penyelesaian 100% dan buat bar kemajuan yang berulang kali untuk menunjukkan bahawa saya masih hidup.
Saya tidak tahu sama ada anda boleh menggunakan swoole, iaitu, selepas anda memuat naik excel, dapatkan bilangan rekod, dan kemudian terus gunakan swoole untuk mengimport sql. Anda boleh mendapatkan peratusan kemajuan halaman semasa anda dengan mengira bilangan rekod dalam pangkalan data.
Ini bergantung pada saiz Excel anda dan masa maksimum yang dibenarkan oleh pelayan untuk permintaan. Saya rasa ia boleh dibahagikan kepada situasi berikut:
Excel sangat kecil, dan import selesai dalam satu atau dua saat - dalam kes ini, cukup sekadar memaparkan bar kemajuan palsu. Contohnya: kemajuan animasi pada detik pertama mencapai 50%, kemajuan pada detik kedua mencapai 75%, kemajuan animasi ketiga mencapai 90%, dan kemudian kemajuan mencapai 100% selepas pelayan kembali OK.
Excel agak besar, tetapi ia boleh disiapkan dalam masa maksimum yang dibenarkan oleh pelayan untuk permintaan -- Dalam kes ini, terdapat beberapa pendekatan:
Untuk menjadi ringkas dan kasar, anggarkan kemajuan pengimportan ke dalam Excel dan simpannya di lokasi tertentu (seperti medan dalam pangkalan data Buat permintaan ajax lain atau EventSource untuk meninjau kemajuan setiap tempoh masa (seperti 500ms). ) dan memaparkannya.
Gunakan sambungan panjang HTTP untuk mengeluarkan kemajuan dalam permintaan untuk mengimport Excel Ingat untuk memuat semula penyemak imbas tepat pada masanya. Pelayar memaparkan animasi kemajuan berdasarkan data yang dikembalikan.
Excel sangat besar atau perniagaannya rumit dan tidak dapat diselesaikan dalam masa maksimum yang dibenarkan oleh pelayan untuk permintaan--Pada masa ini, jika pelayan boleh menjalankan skrip CLI, adalah disyorkan untuk menjalankan skrip CLI untuk import (untuk paparan kemajuan, sila rujuk 2.1) ; Jika tidak, anda perlu membahagikan Excel kepada langkah/masa/bahagian, dan kemudian melaksanakan tugas import langkah demi langkah dalam penyemak imbas, dan memaparkan kemajuan mengikut keputusan yang dibahagikan.
Bolehkah saya mendapatkan jumlah rekod selepas membaca excel?
Ya, kemudian hanya kira bilangan rekod yang diproses/jumlah nombor.
Tidak, kemudian tinggalkan bar kemajuan penyelesaian 100% dan buat bar kemajuan yang berulang kali untuk menunjukkan bahawa saya masih hidup.
Saya tidak tahu sama ada anda boleh menggunakan swoole, iaitu, selepas anda memuat naik excel, dapatkan bilangan rekod, dan kemudian terus gunakan swoole untuk mengimport sql. Anda boleh mendapatkan peratusan kemajuan halaman semasa anda dengan mengira bilangan rekod dalam pangkalan data.