Estoy tratando de burlarme de un método que lleva mucho tiempo para realizar pruebas pero no puedo encontrar una buena forma de hacerlo en Javascript. ¿Algún buen enfoque además de escribir un bucle muy largo para?¿Cómo escribo un método síncrono de bloqueo en Javascript?
Respuesta
¿Qué tal a loop that checks time?
function sleep(milliSeconds){
var startTime = new Date().getTime(); // get the current time
while (new Date().getTime() < startTime + milliSeconds); // hog cpu until time's up
}
Nice. Bastante obvio en retrospectiva. –
Esto puede hacer que el motor de JavaScript bloquee otros hilos (los navegadores como Firefox <4.0 no le permitirán al usuario cambiar pestañas ni hacer nada más). En última instancia, el navegador se dará cuenta de esto y terminará su script. No es Buena idea. –
Funciona en Chrome, eso es todo lo que me importa. Obviamente, esto no entra en ningún código implementado :) –
se puede hacer una llamada AJAX sincrónica a un servidor que remite la respuesta de una cierta cantidad de tiempo a lo solicitado por la secuencia de comandos. Sin embargo, tenga en cuenta que este método no funcionará en Firefox ya que no admite llamadas AJAX sincrónicas.
sólo tiene que utilizar esta función simple en el lado del cliente:
function sleep(microseconds) {
var request = new XMLHttpRequest;
request.open("GET", "/sleep.php?time=" + milliseconds);
request.send();
}
El código para sleep.php
en el lado del servidor:
usleep(intval($_GET("sleep")));
Ahora puede crear el bloqueo de funciones sincrónicas en JavaScript (con la excepción de Firefox) de la siguiente manera:
alert("Hello");
sleep(1000000); // sleep for 1 second
alert("World");
+1 es bueno saberlo, pero es demasiado trabajo :) –
- 1. ¿Cómo escribo un método de extensión en JavaScript?
- 2. ¿Envolviendo llamadas asincrónicas en un hilo de bloqueo síncrono?
- 3. ¿Cuándo es síncrono JavaScript?
- 4. Aviso personalizado síncrono de JavaScript
- 5. Eliminar bloqueo de un método
- 6. ¿Cómo escribo un valor de color RGB en JavaScript?
- 7. ¿Cuál es la diferencia entre el bloqueo con síncrono, sin bloqueo y asíncrono?
- 8. ¿Cómo escribo este método de selección lambda en VB.net?
- 9. ¿Cómo escribo en un OutputStream usando DefaultHttpClient?
- 10. ¿Thrust es síncrono o asíncrono?
- 11. ¿Cómo hacer un sueño sin bloqueo en javascript/jquery?
- 12. Javascript sin bloqueo
- 13. ¿Cómo escribo contenido en otra ventana del navegador usando Javascript?
- 14. Escribiendo mi propio método de bloqueo
- 15. Descarga de javascript sin bloqueo
- 16. ¿Bloqueo de método sincronizado de Java en objeto o método?
- 17. ¿Cómo escribo un temporizador en Objective-C?
- 18. ¿Cómo escribo en un archivo oculto?
- 19. ¿Cómo escribo un breve literal en C++?
- 20. Llamadas de servicio síncrono en Android
- 21. ¿Cómo ejecutar un método C# sin bloqueo a intervalos regulares?
- 22. Cómo llamar a un método en un objeto de javascript
- 23. síncrono carga JS externo con zombie.js
- 24. ¿Cómo escribo un || expresión en Javascript donde 0 no se trata como un valor falsy?
- 25. ¿Cómo escribo un complemento de Firefox?
- 26. anotación de método de bloqueo de python
- 27. Cómo volver a definir un método en un "javascript clase"
- 28. ¿Cómo escribo un método de C# que toma una cantidad variable de argumentos?
- 29. ¿Cómo se elimina un método de un tipo de Javascript
- 30. Asíncrono vs síncrono vs subprocesamiento en una aplicación de iPhone
¿Qué pasa con un bucle muy largo? o un bucle que comprueba el tiempo? – Joseph
Nada mal, solo desearía poder hacer algo como 'dormir (milisegundos)'. Es más difícil averiguar qué tan grande debe ser el ciclo, pero nada de prueba y error no puede solucionarlo. –
En Firefox puede usar [trampolín] (http://tobyho.com/2010/12/10/trampolines-in-javascript-and/ "Trampolines en Javascript y la búsqueda de menos devoluciones de llamada anidadas") para realizar llamadas de JavaScript asíncronas sincrónico. –