jquery internet-explorer crash polling long-polling

Jquery Ajax llama a estrellarse Internet Explorer?



internet-explorer crash (1)

Debo admitir que esta es mi primera publicación en este sitio, por lo que me disculpo por los consejos si hago algo mal (formateo, etc.).

De todos modos, estoy creando una especie de mmo con javascript (y jQuery), y hasta ahora todo está funcionando bien en Chrome, Safari, Firefox, etc. Sin embargo, he encontrado que en algún lugar de la línea, Internet Explorer se cuelga.

Al reproducir el bloqueo lo he reducido a este código:

function getUpdates(){ var data={uid:playerName,area:1,mid:lastMessage}; $.ajax({ url: "getUpdates.py", timeout: 32000, data: data, type:"GET", complete: function(obj, textStatus){ //handleUpdates(obj); getUpdates(); } }); }

Se supone que debe sondear las actualizaciones durante un largo tiempo. Sin embargo, en IE después de una respuesta, este código se queda atascado en un bucle infinito, lo que bloqueará el navegador. No parece bloquearse después de cada respuesta, solo si no hay respuesta del servidor.

Tenga en cuenta que la línea que dice "completar: ..." se ha intentado como:

success: function(...){getUpdates();...}, error: function(...){getUpdates();...}

con el mismo problema que ocurre.


IE devuelve la llamada AJAX al instante desde un caché.

Debe agregar un parámetro aleatorio a la URL para obligar a IE a ignorar su caché, así:

url: "getUpdates.py?RandomNumber=" + Math.random(),

(También puedes usar una new Date )

Además, probablemente debas verificar las actualizaciones un poco más lentamente agregando un retraso de 5 segundos:

complete: function(obj, textStatus){ //handleUpdates(obj); setTimeout(function() { getUpdates(); }, 5000); //milliseconds }