Konec Slow 3G: Chrome už umí škrtit requesty jednotlivě
Každý, kdo staví webové aplikace, ten scénář zná. Potřebujete otestovat, jak se zachová UI, když se API „zakucká“ nebo když platební brána odpovídá tři vteřiny. Do teď jsme v Chrome DevTools měli v podstatě jedinou možnost: v záložce Network přepnout na profil Slow 3G.
Problém je, že Slow 3G je tupý nástroj. Zpomalí totiž úplně všechno. Čekáte, než se znovu stáhnou fonty, než probublá Reactí bundle a než se načtou obrázky. Vývojový cyklus, který má trvat sekundy, se rázem natáhne na minuty. Je to frustrující a upřímně mě vždycky zajímalo, proč tak základní věc jako škrcení konkrétního endpointu v prohlížeči chybí.
S příchodem Chrome 134 tahle bolest končí. Vývojáři konečně přidali možnost nastavit latenci pro každý síťový požadavek zvlášť. A co je na tom nejlepší – funguje to úplně všude. Je jedno, jestli ladíte localhost, nebo sedíte na ostrém webu klienta a snažíte se zjistit, proč se mu při pomalém internetu rozpadá košík.
Jak to funguje v praxi
Celé kouzlo najdete v panelu Network overrides. Stačí v Network tabu kliknout pravým tlačítkem na jakýkoliv request a uvidíte novou možnost Throttling individual request. Chrome vám dovolí zadat přesnou hodnotu zpoždění v milisekundách.
Největší síla je v kombinaci s patterny. Můžete nechat celý web běžet na maximální rychlost a zpomalit jen volání na produkční databázi, platební bránu nebo externí auth službu. Už žádné nekonečné čekání na refresh stránky jen proto, že jste chtěli vidět jeden Loading Spinner.
Je to přesně ten typ vylepšení, které není na první pohled revoluční, ale jakmile ho jednou zkusíte, už se k plošnému zpomalování nevrátíte. Pokud řešíte věci jako Optimistic UI nebo ladíte race conditions při ukládání dat, tohle je teď váš nejlepší kamarád. Funguje to spolehlivě na libovolné doméně, takže debugging produkčních „edge case“ problémů je rázem o level jinde.