2011-09-18 14 views
6

Pracuję nad stroną z zakładkami, jak pyszne. Aby zapewnić użytkownikowi lepszą i szybszą obsługę, przechwytywam wszystkie zakładki z tabeli db i utworzę obiekt json z wszystkimi zawartymi w nim informacjami o zakładkach. Np. Dla każdej zakładki mam identyfikator, tytuł, adres URL, opis, tagi itp. Obiekt json jest już utworzony podczas ładowania pierwszej strony. Następnie uzyskuję wyjściowy plik json, użyj jquery.each do stylizowania i wstrzykiwania odpowiedniego html w locie.Ile JSON jest za dużo JSON?

W tej chwili nie mam możliwości przetestowania go, więc pojawia się moje pytanie: wyobrażając sobie, że nie ma ograniczeń co do liczby zakładek, które użytkownik może zapisać, jaki byłby wpływ na tę strukturę w przeglądarce (lub jakiejkolwiek innej problemy, które mogą pojawić się w tej sytuacji), jeśli użytkownik ma, powiedzmy, 2000 zakładek, również biorąc pod uwagę, że stronicowanie nie jest opcją dla tego konkretnego projektu.

Odpowiedz

7

Prawdopodobnie kontrowersyjny, ale w każdym razie. W jaki sposób stronicowanie nie może być opcją? Kiedy zawsze warto wyświetlać zakładki 2k na raz? Powiedziałbym, że nigdy.

Kiedy zwracasz tyle danych (oczywiście zależy to od ilości tekstu), jesteś szeroko otwarty na ataki DDoS. Wyobraź sobie atakującego, który uzyska adres URL zawierający kilka megabajtów jsona, więc nie byłoby trudno zatapiać twoje serwery.

Byłoby miło z kilkoma dodatkowymi informacjami na temat interfejsu użytkownika, abyśmy mogli przeanalizować, jakich danych naprawdę potrzebujesz.

+0

Każdego dnia dodajemy ponad 10 - 20 linków do mojego konta Instapaper. To właśnie sprawiło, że wymyśliłem moje pytanie. W tej chwili nie mam dostępu do komputera, ale jutro opublikuję kilka przykładów kodu. Stronicowanie nie jest dozwolone w moim przypadku, ponieważ jest to sprzeczne z logiką strony, ale na pewno ją rozważę, jeśli moje rozwiązanie nie będzie możliwe. Jeśli chodzi o ataki DDoS, mam wszystkie możliwe środki. Nie w 100% bezpieczny, ale co to jest? –

+0

Powiedziałeś, że 2000, ale co to powstrzymuje od 200 milionów? Miliard? Dziesięć miliardów? Powiedziałeś, że nie ma limitu. Musisz zaprogramować ekstremum. Aby odpowiedzieć na twoje pytanie, obiekt JSON z kluczami 2000 prawdopodobnie zajmie trochę czasu, a na pewno trochę potrwa, aby dodać 2000 * n elementów do DOM. Dlaczego nie uruchomisz eksperymentów z jsperf.com? – evan

+0

Spróbuję tego @evan, dzięki. –