2012-04-03 10 views
0

Anfragen mit AFNetworking:AFJSONRequestOperation Verzögerung in der Reaktion

NSOperationQueue *queue = [[NSOperationQueue alloc] init]; 
    [queue setMaxConcurrentOperationCount:1]; 
    [queue addOperation:request1]; 
    [queue addOperation:request2]; 

Die Anfrage1 bekommt seine Antwort sofort nach dem Aufruf. Aber zweite Anfrage2 empfängt Antwort mit 14 oder 16 Sekunden Verzögerung nach dem Aufruf.

Serverprotokoll zeigt, dass die Anforderung2 mit 14-16 Sekunden Verzögerung von der Clientzeit dorthin gegangen ist. und es reagiert sofort. Also sollte der Server recht haben.

Was könnte es sein?

+0

Verwendung wireshark oder charlesproxy eine Einnahme greifen erhöhen ausgeführt werden soll, das einen Anhaltspunkt liefern könnten. – JosephH

Antwort

1

Sie setzen die maxConcurrentOperationCount auf 1, so dass Ihre Warteschlange seriell wird. Dies bedeutet, dass immer nur eine Operation ausgeführt wird.

Wahrscheinlich dauert die erste Operation (request1) 14-16 Sekunden.

Wenn Sie beide Anfragen zur gleichen Zeit, um die es passiert maxConcurrentOperationCount

+0

es hilft nicht. Die Anforderungen sollten nacheinander ausgeführt werden. Und die erste Antwort ging in Millisekunden. –

+0

@ phantom.dnepr Wenn die Anforderungen sequenziell ausgeführt werden sollen, sollten Sie 'NSOperation'-Abhängigkeiten verwenden oder die zweite Operation im Abschlussblock der ersten erstellen. In jedem Fall sind mehr Informationen erforderlich, um zu verstehen, was vor sich geht, um Ihnen zu helfen. Beschreibungen der Anfragen, Logs der Antworten, die passieren. – mattt

Verwandte Themen