ACTUALIZACIÓN (5 de julio de 2013):¿Cómo evito la advertencia del script lento y forzo al navegador a continuar ejecutando el script hasta que finalice?
He aprendido mucho desde que originalmente esta pregunta. En uno de los comentarios a continuación, se sugirió que vuelva a enfocar la tarea y encuentre una manera de resolverla sin riesgo de bloquear la IU. Dije que era imposible, la función debe ejecutarse como está. Realmente no recuerdo lo que estaba tratando de lograr con la función, pero estoy seguro de que el comentarista tenía razón, y estaba equivocado. Si te tropiezas con esta pregunta y estás en una situación similar a la que yo tenía, considera seriamente la posibilidad de que tu enfoque sea defectuoso.
Es posible que también desee consultar web workers.
Here is where you can expect them to work.
pregunta original:
En lugar de ponerse demasiado específica a mi problema, voy a seguir esta genéricos para que otras personas que tropiezan con esto puede que le resulte útil.
Tengo una función que acepta un parámetro, una cadena. Si la cadena es corta, la función funciona bien y se completa de manera oportuna. Sin embargo, si la cadena que se transfiere es demasiado larga, la secuencia de comandos se ejecuta un poco, luego se agota el tiempo de espera y devuelve el diálogo de secuencia de comandos lenta del navegador que permite al usuario matar la secuencia de comandos.
Me gustaría evitar que esto suceda para que el script pueda continuar hasta su terminal.
¿Cómo se puede hacer esto?
Una nota al margen: si puedo hacer que esto funcione, también me gustaría hacer aparecer una barra de estado, similar a la que ves al cargar Gmail, para que el usuario sepa que están sucediendo cosas.
Gracias!
Creo que necesita arregla tu función para que no tarde tanto. – lonesomeday
Imposible. :-( –
Luego tiene que hacerlo en otro lugar que no sea el navegador. Quizás podría transferir la función al idioma del lado del servidor al que está demandando. – lonesomeday