Cita:
Iniciado por Betina232022
A mi tampoco me gusta la idea del relojito, además de que no funciona como quisiera.
Así tengo el ciclo para los check:
J=500;
if (dato == "Todo") {
for (I=1; I<=500; I++) {
Nom="document.ValidForms.S" + I + ".checked = true";
eval(Nom);
Nom="document.ValidForms.S" + J + ".checked = true";
eval(Nom);
J=J-1;
}
}
else {
document.ValidForms.reset();
}
Exacto!, era lo que tenia propuesto... estaba apunto de enviarte un código parecido, pero veo que ya lo tienes... y trabaja mejor con los id's... es mas rapido.
function marcaAllCheckBox(objForm){
//Es mejor separar la variable y no estarla analizando en el for, aumenta el rendimiento
var miform=document.forms[objForm].elements.length;
k = miform-1;
miform = Math.floor(miform/2);
for (i=0;i<=miform;i++){
...
}
}
También puedes recuperar los check en grupos de 100 en 100, y haces un sistema de paginación.
Puedes agregar 4 variables... y divides el ciclo en cuatro:
2 que aumentan, y 2 que disminuyen.
digamos que el ciclo vale 1000. se divide en 4 y es 250 el numero de repeticiones, algo significativo.
ahora:
i=0 hasta 250; //aumenta.
j=500 hasta 250; //disminuye.
k=500 hasta 750; //aumenta.
y Q=1000 hasta 750. //disminuye.
Dividimos el tiempo en 4... y es aun mas rápido si los objetos no están visibles.
Crear un div contenedor de todos los check, y darle la opción CSS display:none; antes de iniciar el proceso, al finalizar tornarlo visible nuevamente.