Digamos que tengo un método javascript que tarda un poco en terminar sin ningún comentario del usuario. En mi caso, está ordenando las filas en un elemento de tabla (todo en el DOM; solo toma demasiado tiempo si hay muchas filas), pero podría hacer cualquier cosa. Quiero mostrar el cursor de "progreso" mientras se ejecuta. Esto es lo que tengo actualmente, pero también he probado varias otras cosas:
// CLASIFICAR
document.body.style.cursor = "progress"; MyLongRunningMethod(); //blocks for 10-15 seconds before returning document.body.style.cursor = "auto";¿Has probado Promise? Tal vez eso pueda ayudarte.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise
const MyLongRunningMethod = function(){ return new Promise((resolve,reject)=>{ //...dosometing in here resolve() //while finish.use the resolve function }) } document.body.style.cursor = "progress"; MyLongRunningMethod().then(res => { document.body.style.cursor = "auto"; }); //blocks for 10-15 seconds before returningPruebe este código a continuación;
document.body.style.cursor = "progress"; setTimeout(function(){ SortTable(cell.cellIndex, dir, sortType); document.body.style.cursor = "auto";}, 10);