Aby uprościć moją sytuację; Mam 3 strony PHP. Dwa z nich odpowiednio dodają i usuwają wiersze z bazy danych. Trzeci pobiera wszystkie wiersze, koduje je jako JSON i drukuje wynik.Dlaczego niektóre wywołania AJAX drastycznie się kończą niż inne, gdy adresy URL mają taki sam czas odpowiedzi?
Zleciłem wykonanie wszystkich stron, których zakres wynosi od 0,001 do 0,004 sekundy. Oto czasy z Ajax wzywa jednak:
Fetch całą tabelę jako JSON: 8-12ms
Dodaj wiersz: 990-1010ms
Usuń wiersz: 990-1010ms
Czas reakcji dodatku a czasy usuwania powodują niepotrzebne spowolnienie w mojej aplikacji, biorąc pod uwagę, że czasy wykonywania PHP to zaledwie ułamki sekund, a ich wynik to po prostu "1" za sukces i "0" za porażkę (w porównaniu z wywołaniem pobierania, które drukuje do 100 wierszy (~ 10 kolumn) danych jako JSON)
Wszystkie moje czasy zwrotu Ajax mierzy się w Firebug. Wszystkie połączenia Ajax są wykonywane za pośrednictwem jQuery ($.ajax()
).
Zgaduję, że ma to coś wspólnego z Firefoksem, nie biorąc pod uwagę odpowiedzi na żądanie GET, chyba że otrzymał określoną liczbę bajtów lub znaków, a 1 sekundowy czas odpowiedzi jest pewnego rodzaju przekroczeniem czasu.
Czy są jakieś mądrości, którymi można się podzielić w tej kwestii?
ja timed czasy ładowania AJAX w Chrome i Opera, a także (średnie):
Opera:
* Wszystkie AJAX wzywa ~ 15 ms
Chrome:
* Usuń wiersza i pobierania wierszy: ~ 25ms
* Dodaj wiersz: ~ 350ms
Moja aplikacja jest szybka i responsywna w Operze, ale powolna dla w różnym stopniu we wszystkich innych przeglądarkach. Dokładnie dlaczego wciąż jest dla mnie niejasna.
Zmierzyłem również IE 9, który działa praktycznie identycznie jak Opera. Moja aplikacja działa teraz szybko w dwóch przeglądarkach.
Czy umieścisz kod (PHP, HTML, JavaScript i MySQL)? Jak duża jest baza danych? (Liczba wierszy) –
Ryan Doherty: Obawiam się, że nie mogę, bo to zastrzeżony projekt. Podsumowałem już czasy wykonania PHP w pytaniu, które zawiera kwerendy MySQL i wyklucza PHP jako przyczynę 1 sekundowego opóźnienia. Jakieś konkretne fragmenty kodu, które chciałbyś zobaczyć Jestem pewien, że mogę to zrobić. – Hubro
Czy próbowałeś mierzyć czas ładowania każdej strony, gdy jest to wymagane bezpośrednio, a nie przez ajax? PHP ma trochę na głowie, zanim twój skrypt zostanie uruchomiony (bardziej, jeśli używasz jakiegoś rodzaju frameworku). –