Pregunta

El nuevo v1.4 jQuery dice esto ...

jQuery.ajax () se utiliza ahora onreadystatechange en lugar de un temporizador

peticiones Ajax ahora deben tener menos recursos mediante el uso de onreadystatechange lugar de votación.

No estoy seguro exactamente lo que esto significa, pero en mi sitio (red social como Facebook, MySpace) Tengo notificaciones que llegan de usuario, hace llamada AJAX periodicly para ver si hay nuevas notificaciones para mostrar en una página, es esto algo que puede mejorar la forma en que ese tipo de cosas se hace?

¿Fue útil?

Solución

Sí que mejoraría su sitio. Dependiendo de la cantidad de AJAX utiliza su sitio, la mejora no será notable en la velocidad tanto como los recursos del sistema más bajos se utilizan durante la llamada.

IE6 no soporta onreadystatechange así que supongo que volverá a caer al temporizador para IE6, pero la mayoría de otras implementaciones de navegador de apoyo XMLHTTPRequest ese evento. devoluciones de llamada de evento siempre utilizan menos recursos que un guión de votación (algo que comprueba cada pocos milisegundos).

Con respecto a IE6

  

El onreadystatechange se introdujo en Windows Internet Explorer 7. Fuente: MSDN

Otros consejos

2 Doug Neiner

IE 6 definitivamente apoya onreadystatechange evento. Lo puedo ver en este momento en el IE 6.0.2 en xpsp2. MSDN indica que objeto XMLHttpRequest soportado desde la versión 7 de Internet Explorer, incluyendo todos sus eventos. bibliotecas modernas (como jQuery) Solución esto mediante la creación manual de los objetos "Microsoft.XMLHTTP" o "Msxml2.XMLHTTP", que son a la vez apoyando onreadystatechange evento. ejemplo aquí (MSDN).

Buena suerte.

PS respondida aquí coz este hilo en el top 10 de los resultados de la búsqueda de Google "jQuery onreadystatechange"

onReadyStateChange es una propiedad en el objeto xmlHttpRequest. Parece que $.ajax antes era el sondeo del xhr para ver si estaba listo, pero está ahora en vez escuchando el evento real. Esto significaría que consume menos recursos de javascript, no le exime de cualquier recurso del servidor, ya que todavía tiene que hacer AJAX de votación en que sentido. Así que en realidad no es una nueva técnica que hay que poner en práctica o algo así, es sólo una diferencia de lo que sucede detrás, y utilizar esa mejora, todo lo que tiene que hacer es cambiar a la nueva versión.

supongo (pero no estoy seguro), que ahora que se utilizan onReadyStateChange, también puede pasar sus propios métodos de devolución de llamada a ese evento, lo que permitirá hacer Comet ( "Ajax push") , lo que podría mejorar el rendimiento del servidor. Pero tenga en cuenta que el cometa puede ser difícil de implementar:)

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top