Domanda

Esiste un limite al numero di richieste Ajax simultanee che possono essere lanciate verso un server Apache? Ad esempio, considera la seguente funzione per aggiornare gli elementi div in una pagina (prototipo JS):

function trigger_content_update(cell) {
    //asynchronous : false is required for this to work properly
    $('.update').each(function(update_item){  
        new Ajax.Request('/neighbouring?.state=update_template&dummy='+(new Date()).getTime(),{
            asynchronous: false,
            parameters: {divid: update_item.id, source: cell},
            onComplete: function(response) {
                var elm = response.getHeader('Element');
                if ($(elm) !== null) { $(elm).update(response.responseText) }
            }
        });
});

}

Sulla mia pagina HTML, ci sono 8 elementi div che sono contrassegnati con " aggiorna " Selettore CSS, lanciando così 8 richieste Ajax. Il codice funziona bene con la proprietà asincrona impostata su false, ma non appena imposto asincrono: true posso osservare (in Firebug) la maggior parte delle richieste Ajax che restituiscono uno stato 500 (errore interno del server).

Quando ciò si verifica, è necessario riavviare apache per ripristinare.

È stato utile?

Soluzione

Verificherei il codice lato server che gestisce le richieste.

Per quanto riguarda Apache, la tua richiesta Ajax è solo un POST, come se avessi inviato un modulo. 8 richieste simultanee dovrebbero essere facilmente gestite da Apache, quindi suggerisce che il codice lato server che Apache sta eseguendo si sta bloccando - forse sta cercando di scrivere su un file di dati e trovarlo bloccato?

Altri suggerimenti

Ho appena scritto un caso di prova in cui ho inviato 10.000 chiamate Ajax simultanee a un servizio. Funziona bene su Apache Tomcat. Tutti i servizi sono tornati con una risposta adeguata.

Sembra che il tuo servizio abbia dei problemi di sincronizzazione interna.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top