Pobieranie rozmiaru stron internetowych

0

Witam,

piszę prostą aplikacje, która będzie pobierała rozmiar strony z serwera. Na razie zrobiłem sam interfejs graficzny, który wygląda jak w załączniku. W tym pierwszym okienku wpisuje się nazwę strony, natomiast w drugim ma wyświetlać się rozmiar, ewentualnie czas pobierania. Czy ktoś mógłby udzielić jakiś wskazówek jak napisać funkcję?

1

A może najpierw sam się zastanów nad tym, czym ta wielkość strony jest.

Bo można sobie łatwo sprawdzić rozmiar samego pliku HTML, ale obecnie strony to są bardzo złożone twory, posiadają pełno zależności, osadzonych czy podlinkowanych grafik, zewnętrznych frameworków, bibliotek, styli, skryptów JS itp. Ustal, co chcesz tak konkretnie sprawdzać.

Nie rozumiem też, do czego ma służyć klawisz "STOP" w Twojej aplikacji. Logika nakazuje, że wpisujesz adres, wciskasz "sprawdź" a potem chwilę czekasz. STOP ma sens w sytuacji, w której program ma wykonywać jakieś ciągłe zadania (np. pingowanie jakiegoś serwera), ale obliczenie rozmiaru strony to jednorazowa czynność, trwająca kilka/kilkanaście sekund, więc nie wiem, co ani po co byś miał zatrzymywać.

0

Chciałbym, żeby to mierzyło rozmiar strony w kb, jakaś podpowiedź? A ten przycisk STOP można w sumie wyrzucić.

2

Jeśli masz zamiar robić to tak jak napisał @cerrato to musiałbyś mieć dostęp do serwera, na którym załadowane są te wszystkie pliki, aby móc pobrać ich rozmiar.
Innym rozwiązaniem jest użycie narzędzia typu SiteSucker które pobiera całą konkretną stronę na Twój lokalny dysk.
Kolejna opcja to zbadanie jak to jest robione w przeglądarkach. Gdy włączysz narzędzie developerskie (np w chrome f12) to w zakładce sieć po odświeżeniu danej strony zobaczysz ile jest przesyłanych danych. Lecz myślę, że to nie będzie takie hop siup.

Zakładam, że to jest projekt mający pomóc Ci w nauce języka. Jeśli tak to polecam zmienić temat projektu, bo może być to na starcie trochę za trudne.

0

Nie miałem na myśli aż tak zaawansowanej aplikacji. Jej funkcjonalnością ma być tylko odczytanie rozmiaru strony i wyświetlenie jej w tym polu.

0

Nie ma czegoś takiego jak "rozmar strony" - zresztą pisałem o tym w pierwszym poście. Rozmiar strony o który Tobie chodzi to jest suma rozmiarów wszystkich elementów składowych, które muszą zostać pobrane do przeglądarki klienta, aby strona została poprawnie wyświetlona. W skład tych elementów wchodzi m.in. (pewnie i tak o czymś zapomnę):

  • rozmiar samej strony (HTML)
  • pliki ze stylami (CSS)
  • skrypty w JavaScript
  • grafiki (czy to obrazki w tle, czy osadzone na stronie jako ilustracje)
  • zewnętrzne biblioteki czy frameworki (chociażby jakiś React czy jQuery)

Jedyna opcja, żeby to ustalić bez pobierania wszystkiego, to w sytuacji, w której masz fizyczny dostęp do serwera, na którym jest trzymana strona. Ale to też nie da Ci odpowiedzi na 100% poprawnej, bo powiedzmy, że masz stronę, która posiada wiele podstron: sprawdzając, ile miejsca to zajmuje na dysku, wyjdzie Ci powiedzmy 10MB. Ale to jest wartość, która zawiera w sobie wszystkie elementy składowe, więc jest zawyżona. Ty, wchodząc na tą stronę w zakładkę "kontakt" pobierzesz tylko część z tych 10MB, więc rozmiar strony na którą wchodzisz (z punktu widzenia przeglądarki na komputerze kogoś oglądającego stronę) będzie inny, niż rozmiar całego katalogu, w którym są trzymane jej źródła.

0

Jeśli chodzi Ci jedynie o statyczny rozmiar wysyłanego HTMLa to użyj jakiejś biblioteki klienta HTTP, wykonaj GET request i przeczytaj body odpowiedzi - jego długość w bajtach będzie wtedy "rozmiarem". Nie możesz polegać też na headerze odpowiedzi Content-Length, bo serwery mogą generować odpowiedzi w formie "chunked".

1 użytkowników online, w tym zalogowanych: 0, gości: 1