Potrzebuję przenieść dużą liczbę 16-bitowych liczb całkowitych do klienta za pomocą żądania AJAX do usługi internetowej. Ta tablica jest w istocie pikselowymi danymi w skali szarości dla obrazu z dodatkowymi metadanymi.Przesyłanie dużych tablic do klienta
Oryginalny obraz jest w zastrzeżonym formacie, który nie jest obsługiwany przez przeglądarki. Typowy obraz to 2000 x 4000 pikseli, więc tablica może zawierać wartości 8 000 000+ 16 bitów.
Czy dopuszczalne jest złożenie jednego żądania AJAX i zwrócenie całej tablicy w jednej odpowiedzi, czy powinienem podzielić na mniejsze części i zażądać każdego z osobna? Jeśli jest to zaakceptowana praktyka polegająca na przeniesieniu całej tablicy w jednej odpowiedzi, czy będę musiał obsłużyć niewiarygodne połączenia podczas żądania (czy też nieoczekiwane "wyskakujące" w przeglądarkach)?
Piszemy zarówno klienta, jak i serwis internetowy, dzięki czemu jesteśmy całkowicie elastyczni w stosunku do naszego podejścia.
ile mi wiem, że zawsze lepiej jest ograniczyć liczbę żądań do minimum i pobrać jak najwięcej danych w jednym żądaniu. Dzieje się tak dlatego, że samo żądanie http zabiera czas, nawet jeśli wysyłane są tylko nagłówki. Jeśli wystąpi problem z połączeniem, możesz obsłużyć go za pośrednictwem javascript ... – philipp
Hm, wysyłanie dużych pakietów (po 100 KB) nie jest prawdopodobnie złym pomysłem, ale powinieneś wysłać go w coś bardzo zbliżonego do binarnego. Jeśli potrzebujesz danych tylko do wyświetlenia obrazu, powinieneś przekonwertować go na obraz na serwerze. Ale to zależy od sieci. – Casperah
Przeglądarki, które musisz obsługiwać, czy wszystkie obsługują gniazda sieciowe i wpisywane tablice? Ponieważ jest to prawdopodobnie najlepszy sposób robienia tego w JavaScript – Joni