Ajax-Fehler mit JQuery auf dem iPad

8

Wir haben ein Problem in einer unserer Produktions-Web-Apps, aber nur auf iPad / iOS8 .

Grundsätzlich fügt der Benutzer in seiner Anwendung Produkte zu seinem Einkaufswagen hinzu, indem er auf Bilder klickt, die verschiedene Produkte darstellen. Wenn ein Bild angetippt wird, wird das Produkt "ausgewählt" und ein asynchroner Ajax-Anruf wird getätigt; Dieser Aufruf aktualisiert unseren Einkaufswagen. Jeder asynchrone Aufruf dauert etwa 5-10 Sekunden.

Problem tritt auf (jedoch nur auf dem iPad, nicht auf dem Chrome-Desktop usw.), wenn der Benutzer mehrmals hintereinander klickt. Dann schlägt der n-te Ajax-Aufruf mit "Fehler 0" fehl. Hinweis : Wir können einen zweiten Ajax-Aufruf nicht blockieren, wenn einer bereits ausgeführt wird (wie einige Antworten vorschlagen würden), weil der Wagen nicht richtig aktualisiert wird.

Ich habe dieses Verhalten in einem jsFiddle-Beispiel ausfindig gemacht, das Sie hier finden können:

Ссылка

%Vor%

Meine Hauptfrage ist:

  • Warum passiert das (und warum anscheinend nur auf iPad / Safari)?
Gabriele D'Antona 24.12.2014, 20:35
quelle

4 Antworten

3

Wie die anderen Antworten erwähnt haben, sollten Sie eine Warteschlange haben, um diese Anfrage zu bearbeiten und sicherzustellen, dass sie in der Reihenfolge behandelt werden, in der sie erstellt wurden:

%Vor%

Diese Seite scheint einen Einblick in die Anzahl der aktiven Verbindungen zu geben, die auf einmal verfügbar sind, und Sie können es auf Ihrem iPad ausprobieren Ссылка

Ich habe es alleine ausgeführt und es wurden maximal 17 Verbindungen erwähnt, aber ich bin auch neugierig auf das Netzwerk, das Sie mit diesen iPads verwenden. Wenn es langsamer ist, sagen 3G oder Edge, könnten diese Verbindungen ziemlich schnell sichern . Ich habe mein iPad auf Wifi getestet und konnte Ihren Fehler auf der Fiddle nicht reproduzieren. Hoffentlich hilft das zumindest, das Problem zu diagnostizieren.

    
Codermonk 30.12.2014 00:08
quelle
0
  1. Blockiert den Klick, wenn der Ajax aktiv ist
  2. Verwenden Sie preventDefault, um dem Link nicht zu folgen
%Vor% %Vor%     
mplungjan 24.12.2014 20:57
quelle
0

Vielleicht möchten Sie Folgendes ausprobieren:

%Vor%     
nquocnghia 24.12.2014 22:57
quelle
0

Arbeiten mit den neuesten Versionen von jquery in der folgenden Geige: Ссылка

HTML

%Vor%

JAVASCRIPT

%Vor%     
Peter Darmis 03.01.2015 08:07
quelle

Tags und Links