Ajax, Puedo hacer que vaya actualizando me datos?
Publicado por German (4 intervenciones) el 22/02/2017 02:51:28
Muy buenas gente, los molesto con la siguiente consulta.
Tengo que importar cada cierto tiempo unas planillas excel a sql (mariaDB).
Esto lo hago con PHPExcel y no hay problemas, cada planilla excel tiene unos 20 0 30 mil filas, por unas 9 columnas, por lo que en ocasiones se toma su tiempo para procesar los datos.
De momento solo sale un cartel que dice procesando con un poco de movimiento para no impacientar al usuario.
Mi duda es la siguiente, como puedo hacer que mientras se ejecuta una consulta vaya actualizando un cuadro de porcentaje o algo similar?
Lo mas parecido que hice fue crear una tabla de estadísticas en donde se graba cuanto es server demora en ejecutar ciertas sentencias, entonces predice el tiempo que llevara hacer la consulta dependiendo de la cantidad de filas. Pero este dato no es real (aunque se acerca en general). Ahora pongo un poco de codigo a ver si me explico mejor lo que intento hacer.
Pregunto si cuando uso ajax y hago el envió a un PHP, puede que este PHP envié información antes de terminar de recorrer el código, como quien dice si puede ir actualizando en pantalla datos a medida que corre.
La manera que encontré ahora es que el resultado va a otra consulta ajax y esa otra de nuevo al PHP y así sucesivamente hasta terminar. Pero quizás exista una forma mas simple.
Desde ya muchas gracias!!
Tengo que importar cada cierto tiempo unas planillas excel a sql (mariaDB).
Esto lo hago con PHPExcel y no hay problemas, cada planilla excel tiene unos 20 0 30 mil filas, por unas 9 columnas, por lo que en ocasiones se toma su tiempo para procesar los datos.
De momento solo sale un cartel que dice procesando con un poco de movimiento para no impacientar al usuario.
Mi duda es la siguiente, como puedo hacer que mientras se ejecuta una consulta vaya actualizando un cuadro de porcentaje o algo similar?
Lo mas parecido que hice fue crear una tabla de estadísticas en donde se graba cuanto es server demora en ejecutar ciertas sentencias, entonces predice el tiempo que llevara hacer la consulta dependiendo de la cantidad de filas. Pero este dato no es real (aunque se acerca en general). Ahora pongo un poco de codigo a ver si me explico mejor lo que intento hacer.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
include 'PHPexcel/Classes/PHPExcel.php';
$dataFfile = "archivo.xls";
$objPHPExcel = PHPExcel_IOFactory::load($dataFfile);
//SELECCIONO LA HOJA 1
$sheet = $objPHPExcel->getSheet(0);
//BUSCO LA ULTIMA COLUMNA DE LA TABLA
$highestRow = $sheet->getHighestRow();
//BUSCO LA ULTIMA COLUMNA DE LA TABLA
$highestColumn = $sheet->getHighestColumn();
//ARMO EL RANGO DE SELECCION, DESDE A2(EVITO LA PRIMERA FILA QUE TIENE LAS LEYENDAS)
$data = $sheet->rangeToArray('A1:'.$highestColumn.$highestRow);
//VACIO LA TABLA AUX ANTES DE COMENZAR
$conn -> query(" TRUNCATE TABLE `aux` ");
$10 = $highestColumn * 10 / 100;
$20 = $highestColumn * 20 / 100;
$30 = $highestColumn * 30 / 100;
$40 = $highestColumn * 40 / 100;
.....
...
foreach ($data as $row) {
if( $data > $10 ){ Avisar algun lado que ya llego al 10%}
if( $data > $20 ){ Avisar algun lado que ya llego al 20%}
...............
.........
$row[8] = str_replace("'"," ",$row[8]);
$conn -> query("INSERT INTO `aux` (`a01`, `a02`, `a03`, `a04`, `a05`, `a06`, `a07`, `a08`, `a09`) VALUES ".
"('$row[8]', '$row[7]', '$row[6]', '$row[5]', '$row[4]', '$row[3]', '$row[2]', '$row[1]', '$row[0]')");
}
Pregunto si cuando uso ajax y hago el envió a un PHP, puede que este PHP envié información antes de terminar de recorrer el código, como quien dice si puede ir actualizando en pantalla datos a medida que corre.
La manera que encontré ahora es que el resultado va a otra consulta ajax y esa otra de nuevo al PHP y así sucesivamente hasta terminar. Pero quizás exista una forma mas simple.
Desde ya muchas gracias!!
Valora esta pregunta


0