jQuery.ajax () - Como lidar melhor com os tempos limite?

Eu estou querendo saber qual é a melhor maneira de lidar com timeouts comjQuery.ajax (). Essa é a minha solução no momento: se ocorrer um tempo limite, a página será recarregada e o script terá outra chance de carregar os dados dentro do prazo determinado.

Problema: se "get_json.php" (exemplo abaixo) não estiver realmente disponível, ele se tornará um loop de recarregamento sem fim. Solução possível: adicionar um contador e cancelar depois de $ x recarrega.

Questão 1: Como lidar melhor com o erro de tempo limite?

Questão 2: Qual é o seu prazo recomendado para um tempo limite e 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);
        }
    }
});

Desde já, obrigado!

questionAnswers(1)

yourAnswerToTheQuestion