jQuery.ajax () - ¿Cómo manejar mejor los tiempos de espera?

Me pregunto, ¿cuál es la mejor manera de manejar los tiempos de espera conjQuery.ajax (). Esa es mi solución en este momento: si se agota el tiempo de espera, la página se volverá a cargar y la secuencia de comandos tendrá otra oportunidad de cargar los datos dentro de ese plazo.

Problema: si "get_json.php" (ejemplo a continuación) no está realmente disponible, se convertirá en un bucle de recarga sin fin. Posible solución: agregar un contador y cancelar después de $ x recargas.

Pregunta 1: ¿Cómo manejar mejor el error de tiempo de espera?

Pregunta 2: ¿Cuál es su período de tiempo recomendado para un tiempo de espera y por qué?

Código:

$.ajax({
    type: "POST",
    url: "get_json.php",
    timeout: 500,
    dataType: "json",
    success: function(json) {
        alert("JSON loaded: " + json);
    },
    error: function(request, status, err) {
        if (status == "timeout") {
            // timeout -> reload the page and try again
            console.log("timeout");
            window.location.reload();
        } else {
            // another error occured  
            alert("error: " + request + status + err);
        }
    }
});

¡Gracias por adelantado!

Respuestas a la pregunta(1)

Su respuesta a la pregunta