W czasie poświątecznego tygodnia, z racji braku poniedziałku, postanowiłem przetłumaczyć z Wujka Boba coś krótkiego. Ale jak sprawdzić, który wpis w blogu jest najkrótszy?
Spróbuję to sobie zautomatyzować.
Odpalam przeglądarkę Chrome.
Wchodzę na dowolny wpis w blogu:
Po lewej stronie mam menu z linkami do artykułów:
Odpalam sobie konsolę developerską przez klawisz F12
Klikam zakładkę "Console"
Skorzystam z bardzo szybkiego i popularnego frameworku Vanilla JS http://vanilla-js.com/ :)
Żeby wrzucić wszystkie linki do tablicy:
Żeby wyświetlić wszystkie linki z tej tablicy:
Żeby otworzyć jakąś stronę w tle muszę:
Stworzyć obiekt AJAX:
Skonfigurować go:
Zdefiniować funkcję na wypadek sukcesu żądania (na razie wyświetlam rozmiar strony):
i wypuścić psy:
Oczom moim ukazał się rozmiar zdalnej strony:
A teraz tylko zrobić to dla wszystkich linków, za każdym razem sprawdzając czy dany rozmiar jest najmniejszy:
No dobra mój fantastyczny skrypt znalazł mi stronę z powitaniem.
Nie jest to najdłuższa strona ;). Dodam kod omijający tę stronę w funkcji anonimowej podłączonej do r.onreadystatechange :
Teraz wynik jest ciekawszy:
Tam jest zamieszczony komiks:
Na razie nie chcę tłumaczyć tego komiksu, a więc idę do wyniku wyżej:
Tam jest przysięga programisty, już to przetłumaczyłem :) Idę dalej:
Świetny wybór mój drogi skrypcie.
Krótkie, treściwe, niezbyt stare, o TDD i polemika z DHH.
Strzał w dziesiątkę.
Zabieram się za tłumaczenie :)
Spróbuję to sobie zautomatyzować.
Odpalam przeglądarkę Chrome.
Wchodzę na dowolny wpis w blogu:
Po lewej stronie mam menu z linkami do artykułów:
Odpalam sobie konsolę developerską przez klawisz F12
Klikam zakładkę "Console"
Skorzystam z bardzo szybkiego i popularnego frameworku Vanilla JS http://vanilla-js.com/ :)
Żeby wrzucić wszystkie linki do tablicy:
allLinks = document.getElementsByTagName('a');
Żeby wyświetlić wszystkie linki z tej tablicy:
for (i = 0; i < allLinks.length; i++) { console.log (allLinks[i].href); }
Żeby otworzyć jakąś stronę w tle muszę:
Stworzyć obiekt AJAX:
var r = new XMLHttpRequest();
Skonfigurować go:
r.open("GET", allLinks[3], true);
Zdefiniować funkcję na wypadek sukcesu żądania (na razie wyświetlam rozmiar strony):
r.onreadystatechange = function () { if (r.readyState != 4 || r.status != 200) return; console.log(r.responseText.length); };
i wypuścić psy:
r.send()
Oczom moim ukazał się rozmiar zdalnej strony:
32266
A teraz tylko zrobić to dla wszystkich linków, za każdym razem sprawdzając czy dany rozmiar jest najmniejszy:
allLinks = document.getElementsByTagName('a'); var currentSmalest = 99999999999; for (i = 0; i < allLinks.length; i++) { var r = new XMLHttpRequest(); r.open("GET", allLinks[i], false); r.onreadystatechange = function () { if (r.readyState != 4 || r.status != 200) return; if (r.responseText.length < currentSmalest){ currentSmalest = r.responseText.length; console.log("Current smalest: " + currentSmalest +", " + allLinks[i].href); } }; r.send(); }
No dobra mój fantastyczny skrypt znalazł mi stronę z powitaniem.
Current smalest: 17711, http://blog.cleancoder.com/
Nie jest to najdłuższa strona ;). Dodam kod omijający tę stronę w funkcji anonimowej podłączonej do r.onreadystatechange :
.... if(allLinks[i].href === "http://blog.cleancoder.com/") return; ....
Teraz wynik jest ciekawszy:
Current smalest: 18911, http://blog.cleancoder.com/uncle-bob/2013/05/27/TransformationPriorityAndSorting.html
Tam jest zamieszczony komiks:
Na razie nie chcę tłumaczyć tego komiksu, a więc idę do wyniku wyżej:
Current smalest: 19157, http://blog.cleancoder.com/uncle-bob/2015/11/18/TheProgrammersOath.html
Tam jest przysięga programisty, już to przetłumaczyłem :) Idę dalej:
Current smalest: 21418, http://blog.cleancoder.com/uncle-bob/2017/03/06/TestingLikeTheTSA.html
Świetny wybór mój drogi skrypcie.
Krótkie, treściwe, niezbyt stare, o TDD i polemika z DHH.
Strzał w dziesiątkę.
Zabieram się za tłumaczenie :)
Komentarze
Prześlij komentarz