{"id":258002,"date":"2022-12-31T09:08:00","date_gmt":"2022-12-31T06:08:00","guid":{"rendered":"https:\/\/inform.click\/zwiekszanie-wydajnosci-responsywnych-stron-internetowych\/"},"modified":"2022-12-31T09:08:00","modified_gmt":"2022-12-31T06:08:00","slug":"zwiekszanie-wydajnosci-responsywnych-stron-internetowych","status":"publish","type":"post","link":"https:\/\/inform.click\/pl\/zwiekszanie-wydajnosci-responsywnych-stron-internetowych\/","title":{"rendered":"Zwi\u0119kszanie wydajno\u015bci responsywnych stron internetowych"},"content":{"rendered":"<p>\n  By\u0142 czas, kiedy mo\u017cna by\u0142o \u015bmia\u0142o odr\u00f3\u017cni\u0107 stron\u0119 internetow\u0105 na komputery i stron\u0119 mobiln\u0105. Tak bardzo, \u017ce ca\u0142a bran\u017ca wyros\u0142a wok\u00f3\u0142 zmiany przeznaczenia witryn stacjonarnych na urz\u0105dzenia mobilne.\n<\/p>\n<p>\n  Przez jaki\u015b czas by\u0142e\u015b nikim, je\u015bli nie mia\u0142e\u015b osobnej witryny mobilnej w osobnej domenie. Potem wszystko zacz\u0119\u0142o si\u0119 zmienia\u0107.\n<\/p>\n<p>\n  Wy\u015bwietlacze mobilne poprawi\u0142y si\u0119 nie do poznania. Podobnie sta\u0142o si\u0119 z przegl\u0105darkami mobilnymi. Tablety wrzuci\u0142y kolejny element do r\u00f3wnania. Pojawi\u0142o si\u0119 4G. Wy\u015bwietlacze Retina oferowa\u0142y u\u017cytkownikom ko\u0144cowym nowy poziom przejrzysto\u015bci.\n<\/p>\n<p>\n  Nagle granica mi\u0119dzy komputerem stacjonarnym a telefonem kom\u00f3rkowym zacz\u0119\u0142a si\u0119 zaciera\u0107.\n<\/p>\n<p>\n  Jednocze\u015bnie ros\u0142a r\u00f3\u017cnorodno\u015b\u0107 rozmiar\u00f3w i rozdzielczo\u015bci wy\u015bwietlaczy komputer\u00f3w stacjonarnych.\n<\/p>\n<p>\n  I rosn\u0105cy b\u00f3l g\u0142owy dla projektant\u00f3w stron internetowych.\n<\/p>\n<p>\n  Dawno min\u0119\u0142y czasy, kiedy trzeba by\u0142o obs\u0142u\u017cy\u0107 tylko kilka rozmiar\u00f3w widocznego obszaru. Sprawy si\u0119 komplikowa\u0142y.\n<\/p>\n<p>\n  Na szcz\u0119\u015bcie pomoc by\u0142a pod r\u0119k\u0105 w postaci zapyta\u0144 o media i koncepcji responsywnego projektowania.\n<\/p>\n<p>\n  Dzi\u0119ki zapytaniom o media mo\u017cliwe sta\u0142o si\u0119 r\u00f3\u017cnicowanie styl\u00f3w i uk\u0142adu \u2013 a nawet tre\u015bci \u2013 w zale\u017cno\u015bci od szeroko\u015bci widocznego obszaru i rozdzielczo\u015bci ekranu u\u017cytkownika. Oczywi\u015bcie zapytania o media nie s\u0105 bynajmniej jedynym narz\u0119dziem w torbie sztuczek responsywnego projektanta, ale mo\u017cna \u015bmia\u0142o powiedzie\u0107, \u017ce stanowi\u0105 podstaw\u0119 tej techniki.\n<\/p>\n<p>\n  To by\u0142a \u015bwietna wiadomo\u015b\u0107 dla urz\u0105dze\u0144 mobilnych. Responsywny projekt oznacza\u0142, \u017ce mo\u017cesz skutecznie dostarcza\u0107 r\u00f3\u017cne wersje tej samej witryny na r\u00f3\u017cne urz\u0105dzenia. Wszystko bez tworzenia osobnej witryny mobilnej w innej domenie.\n<\/p>\n<h4>\n  A co z wydajno\u015bci\u0105?<br \/>\n<\/h4>\n<p>\n  W\u0142a\u015bciciele witryn zaczynaj\u0105 zdawa\u0107 sobie spraw\u0119, \u017ce u\u017cytkownikom ko\u0144cowym zale\u017cy na wydajno\u015bci. Zw\u0142aszcza sprzedawcy detaliczni zaczynaj\u0105 docenia\u0107 fakt, \u017ce skr\u00f3cenie czasu \u0142adowania o milisekundy mo\u017ce prze\u0142o\u017cy\u0107 si\u0119 na miliony w bilansie.\n<\/p>\n<p>\n  Na szcz\u0119\u015bcie responsywne witryny oferuj\u0105 jedn\u0105 wyra\u017an\u0105 przewag\u0119 wydajno\u015bci w por\u00f3wnaniu z ich dedykowanymi kuzynami mobilnymi: wyeliminowane jest przekierowanie do domeny mobilnej.\n<\/p>\n<p>\n  Jednak pomimo tego responsywny projekt zyska\u0142 reputacj\u0119 s\u0142abej wydajno\u015bci.\n<\/p>\n<p>\n  W pewnym sensie jest to raczej niesprawiedliwe, ale warto przyjrze\u0107 si\u0119 dodatkowym wyzwaniom zwi\u0105zanym z wydajno\u015bci\u0105, jakie responsywny projekt stawia nieostro\u017cnym\u2026\n<\/p>\n<h5>\n  Zdj\u0119cia<br \/>\n<\/h5>\n<p>\n  Pliki obraz\u00f3w s\u0105 du\u017ce. A poniewa\u017c s\u0105 du\u017ce, cz\u0119sto s\u0105 winne powolnego \u0142adowania. S\u0105 zatem dobrym miejscem do rozpocz\u0119cia dla ka\u017cdego, kto pr\u00f3buje zoptymalizowa\u0107 wydajno\u015b\u0107 witryny.\n<\/p>\n<p>\n  Niestety, jedno z pierwszych rozwi\u0105za\u0144 responsywnego dostarczania obraz\u00f3w nie by\u0142o zbyt dobre pod wzgl\u0119dem wydajno\u015bci.\n<\/p>\n<p>\n  Technika jest pi\u0119knie prosta. Po prostu u\u017cyj max-width: 100%, aby upewni\u0107 si\u0119, \u017ce obrazy s\u0105 skalowane do szeroko\u015bci elementu zawieraj\u0105cego:\n<\/p>\n<pre><code>img\n{\nmax-width: 100%;\n}<\/code><\/pre>\n<p>\n  Poniewa\u017c kontener kurczy si\u0119, aby dopasowa\u0107 go do mniejszych rzutni, wszystkie znajduj\u0105ce si\u0119 w nim obrazy b\u0119d\u0105 si\u0119 kurczy\u0107. \u0141atwy!\n<\/p>\n<p>\n  Ale jest problem. Rozmiar obrazu mo\u017ce si\u0119 zmniejszy\u0107 na ekranie, ale rozmiar pliku pozostaje taki sam. Jest to dalekie od idea\u0142u z punktu widzenia wydajno\u015bci. Mo\u017cesz przesy\u0142a\u0107 obraz o wymiarach 800 x 800 pikseli, tylko po to, aby by\u0142 wy\u015bwietlany w rozmiarze 80 x 80 pikseli: innymi s\u0142owy, mo\u017cesz przesy\u0142a\u0107 setki (lub tysi\u0105ce) niepotrzebnych bajt\u00f3w. Nie tylko \u0142adowanie obrazu zajmie du\u017co czasu, ale wszystkie te nadmiarowe bajty mog\u0105 wyczerpa\u0107 cenny limit danych u\u017cytkownika ko\u0144cowego.\n<\/p>\n<p>\n  Jednak nie jest to jedyny \u2013 ani nawet najlepszy \u2013 spos\u00f3b dostarczania responsywnych obraz\u00f3w. Po pierwsze, obraz, kt\u00f3ry dzia\u0142a przy szeroko\u015bci 800 pikseli, niekoniecznie b\u0119dzie dzia\u0142a\u0142 tak dobrze w r\u00f3\u017cnych u\u0142amkach tego rozmiaru.\n<\/p>\n<p>\n  Aby sobie z tym poradzi\u0107, mo\u017cesz u\u017cy\u0107 zapytania o media, aby wy\u015bwietli\u0107 r\u00f3\u017cne wersje obrazu w zale\u017cno\u015bci od rozmiaru rzutni, u\u017cywaj\u0105c zapytania o media i wy\u015bwietlenia: brak.\n<\/p>\n<p>\n  <strong>CSS:<\/strong>\n<\/p>\n<pre><code>@media (min-width: 601px) {\n#croppedImage\n{\ndisplay:none;\n}\n}\n@media (max-width: 600px) {\n#largeImage\n{\ndisplay:none;\n}\n}<\/code><\/pre>\n<p>\n  <strong>HTML:<\/strong>\n<\/p>\n<pre><code>&lt;img id=\"largeImage\" width=\"400\" height=\"400\" alt=\"\" src=\"images\/largeImage.webp\" \/&gt;\n&lt;img id=\"croppedImage\" width=\"200\" height=\"200\" alt=\"\" src=\"images\/croppedImage.webp\" \/&gt;<\/code><\/pre>\n<p>\n  Umo\u017cliwia to wy\u015bwietlanie r\u00f3\u017cnych wersji obrazu, a nie tylko tego samego obrazu w r\u00f3\u017cnych rozmiarach. Nie zmniejsza to jednak liczby bajt\u00f3w. W rzeczywisto\u015bci ca\u0142kowity rozmiar strony b\u0119dzie wi\u0119kszy, poniewa\u017c wszystkie obrazy zostan\u0105 za\u0142adowane, niezale\u017cnie od tego, czy s\u0105 wy\u015bwietlane, czy nie.\n<\/p>\n<p>\n  Lepsz\u0105 alternatyw\u0105 \u2013 je\u015bli jest to praktyczne \u2013 jest u\u017cycie obraz\u00f3w t\u0142a zamiast <code>&lt;img src=\"https:\/\/inform.click\/wp-content\/uploads\/2024\/11\/inform.click\" \/&gt;<\/code>element\u00f3w. Jest to preferowane, poniewa\u017c obrazy, do kt\u00f3rych odwo\u0142uje si\u0119 CSS, s\u0105 \u0142adowane tylko wtedy, gdy s\u0105 u\u017cywane (o ile nie s\u0105 identyfikatorami URI danych):\n<\/p>\n<pre><code>@media (min-width: 601px) {\n#largeImage\n{\nwidth:400px;\nheight:400px;\nbackground-image:url(\/images\/largeImage.webp);\n}\n#croppedImage\n{\ndisplay:none;\n}\n}\n \n@media (max-width: 600px) {\n#croppedImage\n{\nwidth:200px;\nheight:200px;\nbackground-image:url(\/images\/croppedImage.webp);\n}\n#largeImage\n{\ndisplay:none;\n}\n}<\/code><\/pre>\n<p>\n  Dzia\u0142a to dobrze: odwiedzaj\u0105cy pobieraj\u0105 tylko te obrazy, kt\u00f3rych potrzebuj\u0105, kiedy i kiedy ich potrzebuj\u0105. Problem polega na tym, \u017ce jest nieporz\u0105dny, skutecznie traktuj\u0105c tre\u015b\u0107 jako styl. W zwi\u0105zku z tym potencjalnie stwarza problem z utrzymaniem, a tak\u017ce mo\u017ce powodowa\u0107 ignorowanie wa\u017cnych obraz\u00f3w przez wyszukiwarki.\n<\/p>\n<p>\n  Zamiast tego, dlaczego nie u\u017cy\u0107 SVG (skalowalnej grafiki wektorowej): formatu obrazu, kt\u00f3ry skaluje si\u0119 z natury? Obrazy SVG maj\u0105 r\u00f3wnie\u017c t\u0119 zalet\u0119, \u017ce mo\u017cna je \u0142atwo stylizowa\u0107 za pomoc\u0105 CSS (zobacz <a href=\"http:\/\/tympanus.net\/codrops\/2014\/08\/19\/making-svgs-responsive-with-css\/\" target=\"_blank\" rel=\"noopener\">ten \u015bwietny samouczek<\/a> na temat tworzenia responsywnych plik\u00f3w SVG za pomoc\u0105 CSS). Jest to idealne rozwi\u0105zanie dla ikon i logo, ale niestety nie b\u0119dziesz m\u00f3g\u0142 u\u017cywa\u0107 plik\u00f3w SVG do zdj\u0119\u0107 \u2013 w tym przypadku b\u0119dziesz musia\u0142 skorzysta\u0107 z format\u00f3w rastrowych, takich jak JPEG.\n<\/p>\n<p>\n  Inn\u0105 opcj\u0105 jest u\u017cycie jednego z wielu rozwi\u0105za\u0144 JavaScript w celu dostarczenia responsywnych obraz\u00f3w. Jest to popularny spos\u00f3b na zrobienie tego, ale dodaje kolejn\u0105 warstw\u0119 z\u0142o\u017cono\u015bci. Co wi\u0119cej, poniewa\u017c JavaScript blokuje konstrukcj\u0119 DOM, ka\u017cde rozwi\u0105zanie wykorzystuj\u0105ce JavaScript mo\u017ce potencjalnie wstrzyma\u0107 renderowanie. Tak wi\u0119c, chocia\u017c istnieje kilka bardzo sprytnych wtyczek, po prostu wprowadzaj\u0105c JavaScript do r\u00f3wnania, do pewnego stopnia godzisz si\u0119 na mniejsze z\u0142o.\n<\/p>\n<p>\n  Do niedawna by\u0142y to jedyne opcje.\n<\/p>\n<p>\n  Teraz jednak elementy i <code>&lt;source \/&gt;<\/code>oraz atrybuty srcset i size wreszcie wprowadzaj\u0105 do sieci naprawd\u0119 responsywne obrazy. Nowa specyfikacja zaczyna r\u00f3wnie\u017c zyskiwa\u0107 wsparcie w przegl\u0105darkach, z pe\u0142nym wsparciem w Chrome i Operze oraz obs\u0142ug\u0105 prze\u0142\u0105czania rozdzielczo\u015bci w Safari. Dop\u00f3ki inne przegl\u0105darki nie nadrobi\u0105 zaleg\u0142o\u015bci, istnieje doskona\u0142y kod JavaScript <a href=\"https:\/\/scottjehl.github.io\/picturefill\/\" target=\"_blank\" rel=\"noopener\">polyfill<\/a>.\n<\/p>\n<p>\n  W tym wspania\u0142ym nowym \u015bwiecie mo\u017cesz u\u017cy\u0107 srcset, aby ustawi\u0107 list\u0119 obraz\u00f3w kandyduj\u0105cych do wybrania przez przegl\u0105dark\u0119. Nast\u0119pnie mo\u017cesz u\u017cy\u0107 zapytania o media w atrybucie rozmiary, aby okre\u015bli\u0107 rozmiar, w jakim obraz b\u0119dzie wy\u015bwietlany. U\u017cywaj\u0105c elementu wraz z zapytaniami o media wewn\u0105trz jednego lub wi\u0119cej element\u00f3w, mo\u017cesz okre\u015bli\u0107r\u00f3\u017cny zakres obraz\u00f3w dla r\u00f3\u017cnych warunk\u00f3w (np. dla rzutni o okre\u015blonej szeroko\u015bci u\u017cyj obrazka a, b lub c, a dla wi\u0119kszych rzutni u\u017cyj obrazka x, y lub z). Jest to przydatne, je\u015bli chcesz dostarczy\u0107 przyci\u0119t\u0105 wersj\u0119 obrazu dla u\u017cytkownik\u00f3w z ma\u0142ymi ekranami.\n<\/p>\n<p>\n  Dok\u0142adne szczeg\u00f3\u0142y dotycz\u0105ce korzystania z nowej sk\u0142adni wykraczaj\u0105 poza zakres tego artyku\u0142u, ale doskona\u0142y samouczek mo\u017cna znale\u017a\u0107 na <a href=\"http:\/\/alistapart.com\/article\/responsive-images-in-practice\" target=\"_blank\" rel=\"noopener\">stronie alistapart<\/a>.\n<\/p>\n<p>\n  By\u0107 mo\u017ce jedyn\u0105 wad\u0105 tej nowej specyfikacji jest to, \u017ce jest do\u015b\u0107 rozwlek\u0142a, co mo\u017ce oznacza\u0107 rozd\u0119ty HTML na stronach z du\u017c\u0105 ilo\u015bci\u0105 obraz\u00f3w. Jednak korzy\u015bci znacznie przewy\u017cszaj\u0105 wady.\n<\/p>\n<h5>\n  \u0141adowanie CSS, kt\u00f3rego (koniecznie) nie potrzebujesz<br \/>\n<\/h5>\n<p>\n  Chocia\u017c zapytania o media umo\u017cliwiaj\u0105 stosowanie r\u00f3\u017cnych regu\u0142 CSS w zale\u017cno\u015bci od ustawionych kryteri\u00f3w, nie mo\u017cna uciec od faktu, \u017ce u\u017cytkownicy ko\u0144cowi b\u0119d\u0105 musieli pobra\u0107 wszystkie CSS, kt\u00f3re mog\u0105 mie\u0107 zastosowanie. Dzieje si\u0119 tak nawet wtedy, gdy umie\u015bcisz CSS w oddzielnych plikach i umie\u015bcisz zapytanie o media w\n<\/p>\n<link \/>elemencie.\n<p>\n  Na przyk\u0142ad oba poni\u017csze arkusze styl\u00f3w zostan\u0105 za\u0142adowane niezale\u017cnie od szeroko\u015bci rzutni:\n<\/p>\n<link rel=\"stylesheet\" media=\"(max-width: 600px)\" href=\"css\/style1.css\" \/>\n<pre>\n<\/pre>\n<link rel=\"stylesheet\" media=\"(min-width: 601px)\" href=\"css\/style2.css\" \/>\n<p>\n  <code>To nie jest b\u0142\u0105d przegl\u0105darki. Kryteria stosowane w zapytaniach o media cz\u0119sto dotycz\u0105 rzeczy, kt\u00f3re zmieniaj\u0105 si\u0119 podczas wizyty na stronie. Na przyk\u0142ad odwiedzaj\u0105cy mo\u017ce zdecydowa\u0107 si\u0119 na zmian\u0119 rozmiaru okna przegl\u0105darki lub obr\u00f3cenie tabletu\/urz\u0105dzenia mobilnego. Wynikaj\u0105ca z tego zmiana w wy\u015bwietlaniu powinna przebiega\u0107 p\u0142ynnie, a wys\u0142anie pro\u015bby o kolejny plik CSS by\u0142oby dalekie od idea\u0142u. Jest to szczeg\u00f3lnie prawdziwe w przypadku urz\u0105dze\u0144 mobilnych, kt\u00f3re staraj\u0105 si\u0119 zamkn\u0105\u0107 \u0142\u0105cza radiowe przy najbli\u017cszej okazji, aby oszcz\u0119dza\u0107 energi\u0119 baterii. Potencjalna konieczno\u015b\u0107 ponownego ustanowienia tego po\u0142\u0105czenia, gdy zmienia si\u0119 rozmiar widocznego obszaru, mo\u017ce by\u0107 z\u0142\u0105 wiadomo\u015bci\u0105 dla \u017cywotno\u015bci baterii.<\/code>\n<\/p>\n<p>\n  <code>Jednak Chrome stara si\u0119 radzi\u0107 sobie z tymi r\u00f3\u017cnymi plikami w inteligentny spos\u00f3b. Podczas gdy wszystkie pliki zostan\u0105 pobrane, tylko ten z aktualnie pasuj\u0105cym zapytaniem o media zablokuje renderowanie. Wszystkie inne zostan\u0105 za\u0142adowane z ni\u017cszym priorytetem.<\/code>\n<\/p>\n<p>\n  <code>Niestety, inne przegl\u0105darki nie s\u0105 tak zobowi\u0105zuj\u0105ce. Na przyk\u0142ad w przegl\u0105darce Firefox nieu\u017cywane pliki CSS nie tylko blokuj\u0105 renderowanie \u2014 blokuj\u0105 tak\u017ce \u0142adowanie innych obiekt\u00f3w na stronie.<\/code>\n<\/p>\n<p>\n  <code>Poni\u017cszy wykres wodospadu ilustruje t\u0119 kwesti\u0119. Obrazy na tej stronie nie zaczn\u0105 si\u0119 \u0142adowa\u0107, dop\u00f3ki nieu\u017cywany plik CSS nie zostanie ca\u0142kowicie pobrany:<\/code>\n<\/p>\n<p>\n  <code>Mo\u017cna to obej\u015b\u0107, u\u017cywaj\u0105c JavaScript do warunkowego \u0142adowania CSS, ale, jak ju\u017c widzieli\u015bmy, JavaScript wi\u0105\u017ce si\u0119 z kosztami wydajno\u015bci.<\/code>\n<\/p>\n<h5>\n  <code>Co to wszystko oznacza dla wydajno\u015bci witryny responsywnej w por\u00f3wnaniu z witryn\u0105 mobiln\u0105?<\/code><br \/>\n<\/h5>\n<p>\n  <code>C\u00f3\u017c, u\u017cytkownicy mobilni i u\u017cytkownicy komputer\u00f3w stacjonarnych w responsywnej witrynie b\u0119d\u0105 musieli pobra\u0107 ten sam CSS.<\/code>\n<\/p>\n<p>\n  <code>B\u0119dzie ich wi\u0119cej ni\u017c w witrynie przeznaczonej wy\u0142\u0105cznie na komputery stacjonarne lub urz\u0105dzenia mobilne.<\/code>\n<\/p>\n<p>\n  <code>Co wi\u0119cej, dedykowana witryna mobilna jest bardziej sk\u0142onna do korzystania z l\u017cejszej, uproszczonej wersji CSS na komputery stacjonarne (chocia\u017c obecnie jest to by\u0107 mo\u017ce mniej prawdziwe, poniewa\u017c u\u017cytkownicy coraz bardziej oczekuj\u0105 bogatszych wra\u017ce\u0144 na coraz bardziej wyrafinowanych ekranach mobilnych).<\/code>\n<\/p>\n<p>\n  <code>Wi\u0119c je\u015bli inne rzeczy s\u0105 r\u00f3wne, wygl\u0105da na to, \u017ce jest co\u015b w argumencie, \u017ce responsywna prawdopodobnie b\u0119dzie wolniejsza ni\u017c strona mobilna z powodu wymaganego dodatkowego CSS. Jednak dop\u00f3ki projektanci s\u0105 \u015bwiadomi potencjalnych pu\u0142apek, powinni by\u0107 w stanie tworzy\u0107 szybko \u0142aduj\u0105ce si\u0119 arkusze styl\u00f3w dla responsywnej witryny. W szczeg\u00f3lno\u015bci dobrze jest:<\/code>\n<\/p>\n<ul>\n<li>\n    <code>unikaj u\u017cywania identyfikator\u00f3w URI danych dla obraz\u00f3w \u2013 binarne obrazy t\u0142a b\u0119d\u0105 (normalnie) \u0142adowane tylko wtedy, gdy b\u0119d\u0105 potrzebne, ale wszystkie identyfikatory URI danych zostan\u0105 za\u0142adowane niezale\u017cnie od tego.<\/code>\n  <\/li>\n<li>\n    <code>Zachowaj lekko\u015b\u0107 \u2013 poniewa\u017c ca\u0142y CSS musi zosta\u0107 pobrany, wa\u017cne jest, aby by\u0142 wydajny. Oznacza to unikanie powielania i upewnianie si\u0119, \u017ce globalne regu\u0142y s\u0105 ustalane poza CSS opartym na zapytaniu o media.<\/code>\n  <\/li>\n<\/ul>\n<h5>\n  <code>RESS (responsywne projektowanie stron internetowych + komponenty po stronie serwera)<\/code><br \/>\n<\/h5>\n<p>\n  <code>RESS to hybryda mi\u0119dzy projektowaniem responsywnym a adaptacyjnym, kt\u00f3ra polega na w\u0105chaniu agenta u\u017cytkownika na serwerze w celu przyjrzenia si\u0119 charakterystyce urz\u0105dzenia klienckiego i dostarczenia odpowiedniej dla niego tre\u015bci.<\/code>\n<\/p>\n<p>\n  <code>Je\u015bli jednym z zarzut\u00f3w wobec responsywnego projektowania jest to, \u017ce obejmuje ono dostarczanie wszystkich tre\u015bci na wszystkie urz\u0105dzenia, dlaczego nie z\u0142agodzi\u0107 tego, wycinaj\u0105c cz\u0119\u015b\u0107 tych tre\u015bci tam, gdzie to mo\u017cliwe?<\/code>\n<\/p>\n<p>\n  <code>To mo\u017ce mie\u0107 wiele sensu. Je\u015bli istnieje obraz, kt\u00f3rego nigdy nie b\u0119dziesz chcia\u0142 wy\u015bwietla\u0107 na urz\u0105dzeniach, kt\u00f3rych ekran jest mniejszy ni\u017c okre\u015blony rozmiar, r\u00f3wnie dobrze mo\u017cesz go nie wysy\u0142a\u0107 na te urz\u0105dzenia, oszcz\u0119dzaj\u0105c przepustowo\u015b\u0107 i skracaj\u0105c czas \u0142adowania.<\/code>\n<\/p>\n<p>\n  <code>Co wi\u0119cej, je\u015bli u\u017cywasz zapyta\u0144 o media, o kt\u00f3rych wiesz, \u017ce nie mog\u0105 by\u0107 spe\u0142nione na niekt\u00f3rych urz\u0105dzeniach, istnieje przynajmniej argument przemawiaj\u0105cy za podzieleniem CSS na r\u00f3\u017cne pliki i \u0142adowaniem ich warunkowo.<\/code>\n<\/p>\n<p>\n  <code>Warto pami\u0119ta\u0107, \u017ce ca\u0142y ten proces nie jest \u201edarmowy\" pod wzgl\u0119dem wydajno\u015bci. Oczywi\u015bcie trzeba wykona\u0107 pewne prace na serwerze, co wymaga czasu \u2013 prawdopodobnie nie na tyle, aby przewa\u017cy\u0107 nad korzy\u015bciami, ale warto o tym pami\u0119ta\u0107.<\/code>\n<\/p>\n<h5>\n  <code>Werdykt<\/code><br \/>\n<\/h5>\n<p>\n  <code>Czy strony responsywne s\u0105 powolne?<\/code>\n<\/p>\n<p>\n  <code>Zale\u017cy co rozumiesz przez powolny.<\/code>\n<\/p>\n<p>\n  <code>Czy najszybsza responsywna witryna, kt\u00f3r\u0105 mo\u017cesz stworzy\u0107, mo\u017ce by\u0107 wolniejsza ni\u017c najszybsza dedykowana witryna mobilna, jak\u0105 mo\u017cesz zrobi\u0107?<\/code>\n<\/p>\n<p>\n  <code>Prawdopodobnie.<\/code>\n<\/p>\n<p>\n  <code>Widzieli\u015bmy r\u00f3wnie\u017c, \u017ce istnieje kilka pu\u0142apek. Je\u015bli nie b\u0119dziesz ostro\u017cny, \u0142atwo zmusisz u\u017cytkownik\u00f3w do pobrania wielu zb\u0119dnych obraz\u00f3w i CSS, przez co Twoja responsywna witryna b\u0119dzie dzia\u0142a\u0107 znacznie wolniej ni\u017c powinna.<\/code>\n<\/p>\n<p>\n  <code>Jednak wcale tak nie musi by\u0107. Stworzenie responsywnej witryny, kt\u00f3ra jest tak szybka, jak powinna, i zapewnia doskona\u0142e wra\u017cenia u\u017cytkownika, jest ca\u0142kowicie mo\u017cliwe. A poniewa\u017c zar\u00f3wno standardy, jak i przegl\u0105darki zaczynaj\u0105 nad\u0105\u017ca\u0107 za tym, co programi\u015bci chc\u0105 dostarcza\u0107, powinno by\u0107 coraz \u0142atwiej.<\/code>\n<\/p>\n<p>\n  <code>&lt;\/p&gt;\n&lt;p&gt;<\/code>\n<\/p>\n<div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">\n  <code>\u0179r\u00f3d\u0142o nagrywania: &lt;a target=\"_blank\" rel=\"noopener nofollow\" data-pssr=\"\" href=\"http:\/\/www.instantshift.com\/2015\/09\/07\/making-responsive-websites-perform\/\"&gt;instantshift.com&lt;\/a&gt;<\/code>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>By\u0142 czas, kiedy mo\u017cna by\u0142o \u015bmia\u0142o odr\u00f3\u017cni\u0107 stron\u0119 internetow\u0105 na komputery i stron\u0119 mobiln\u0105. Tak bardzo, \u017ce ca\u0142a bran\u017ca wyros\u0142a wok\u00f3\u0142 zmiany przeznaczenia witryn stacjonarnych na urz\u0105dzenia mobilne. Przez jaki\u015b czas by\u0142e\u015b nikim, je\u015bli nie mia\u0142e\u015b osobnej witryny mobilnej w osobnej domenie. Potem wszystko zacz\u0119\u0142o si\u0119 zmienia\u0107. Wy\u015bwietlacze mobilne poprawi\u0142y si\u0119 nie do poznania. Podobnie sta\u0142o si\u0119 z przegl\u0105darkami mobilnymi. Tablety wrzuci\u0142y kolejny element do r\u00f3wnania. Pojawi\u0142o si\u0119 4G. Wy\u015bwietlacze Retina oferowa\u0142y u\u017cytkownikom ko\u0144cowym nowy poziom przejrzysto\u015bci. Nagle granica mi\u0119dzy komputerem stacjonarnym a telefonem kom\u00f3rkowym zacz\u0119\u0142a si\u0119 zaciera\u0107. \u2026<\/p>\n","protected":false},"author":1,"featured_media":222114,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[201,58],"tags":[],"class_list":["post-258002","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-projektowanie-stron","category-web-i-wordpress"],"_links":{"self":[{"href":"https:\/\/inform.click\/pl\/wp-json\/wp\/v2\/posts\/258002","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/inform.click\/pl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/inform.click\/pl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/inform.click\/pl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/inform.click\/pl\/wp-json\/wp\/v2\/comments?post=258002"}],"version-history":[{"count":0,"href":"https:\/\/inform.click\/pl\/wp-json\/wp\/v2\/posts\/258002\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/inform.click\/pl\/wp-json\/wp\/v2\/media\/222114"}],"wp:attachment":[{"href":"https:\/\/inform.click\/pl\/wp-json\/wp\/v2\/media?parent=258002"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/inform.click\/pl\/wp-json\/wp\/v2\/categories?post=258002"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/inform.click\/pl\/wp-json\/wp\/v2\/tags?post=258002"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}