Programavimas

7 lėtinės naršyklės klaidos, kankinančios internetą

Interneto naršyklės yra nuostabios. Jei ne naršyklės, negalėtume beveik taip gerai susisiekti su vartotojais ir klientais, pildami duomenis ir dokumentus į jų stalinius kompiuterius, planšetinius kompiuterius ir telefonus. Deja, visas nuostabus turinys, kurį teikia žiniatinklio naršyklė, kelia daug didesnį nusivylimą, kai perteikimas nėra toks elegantiškas ar be klaidų, kaip norėtume.

Kalbant apie svetainių kūrimą, mes esame tiek naršyklių malonės, kiek skolingi joms. Bet koks bet kurios platformos sutrikimas iššoka, ypač kai sugenda mūsų vartotojų mašinos. Su dizainu kaip tokia priemoka už išsiskyrimą ar įsitaisymą bet kokia riebi linija ar netinkamai pritaikytas spalvų prisilietimas sunaikina estetinę patirtį, kurią mes stengėmės sukurti. Net ir menkiausia klaida, pvz., Papildomas pikselių pridėjimas prie linijos pločio ar lentelės truputį nesuderinimas, gali sukelti varginančią vartotojo patirtį, jau nekalbant apie jos aptikimo, patikrinimo ir darbo aplink ją išlaidas.

Žinoma, anksčiau buvo blogiau. Didžiulius skirtumus tarp naršyklių iš esmės panaikino ištikimybė W3C žiniatinklio standartams. Likusių skirtumų paprastai galima nepaisyti, nes gausėja tokių bibliotekų kaip „jQuery“, kurios ne tik palengvina „JavaScript“ įsilaužimą, bet ir popieriaus, kaip naršyklės nėra vienodos.

Šios bibliotekos turi įprotį užšaldyti naršyklės klaidas. Jei naršyklių įmonės ištaisys keletą blogiausių klaidų, naujieji „taisymai“ gali sutrikdyti senus pleistrus ir jų šalinimą. Staiga „taisymas“ tampa problema, kuri sutrikdo seną stabilumą, kurį mes suklydome aplink klaidą. Programuotojai negali laimėti.

Stabilumas, kurį suteikia tokios bibliotekos kaip „jQuery“, taip pat paskatino naršyklių kūrėjus paspartinti ir automatizuoti naršyklės atnaujinimo procesus. „Mozilla“ yra įsipareigojusi kas kelis mėnesius išstumti naują „Firefox“ versiją. Anksčiau kiekviena versija buvo stabilus tikslas interneto svetainių kūrėjams, ir mes galėjome įdėti šiek tiek GIF į savo svetaines teigdami, kad jie geriausiai veikia, tarkime, IE5. Dabar odometras sukasi taip greitai, kad HTML naršymo metu iš serverio į klientą bus išleista nauja „Firefox“ versija.

Tuo tarpu mes prašome naršyklių padaryti daug daugiau. Mano vietinio laikraščio svetainė priklaupia mano mašiną - plečiami popover skelbimai, vaizdo įrašų fragmentai, kurie automatiškai paleidžiami, kodas pritaikomas skelbimams pagal mano naujausią naršymo istoriją. Jei mano dukra žiūri į lėlių svetainę, „JavaScript“ pašėlusiai bando surasti lėlės skelbimą, kurį galėtų man parodyti. Visa ši magija sugeneruoja procesorių.

Visa tai reiškia, kad šiandienos naršyklės klaidos yra retesnės, tačiau jas sunkiau nustatyti. Čia apžvelgiami naujausi naršyklės klaidų žanrai, kankinantys - arba daugeliu atvejų paprasčiausiai įkyrūs - interneto dizaineriai ir kūrėjai.

Išdėstymas

Labiausiai matomos naršyklės klaidos yra išdėstymo trikdžiai. „Mozilla“ „Bugzilla“ klaidų duomenų bazėje yra 10 skilčių, skirtų išdėstymo problemoms spręsti, ir joje nėra išdėstymo problemų, priskiriamų kategorijoms, susijusioms su DOM, CSS ar „Canvas“. Svarbiausias naršyklės darbas yra sutvarkyti tekstą ir vaizdus, ​​o juos tinkamai ištaisyti dažnai būna sunku.

Daugelis maketavimo klaidų gali atrodyti mažos, kad yra beveik ezoteriškos. Pavyzdžiui, „Bugzilla“ klaida 1303580 kviečia „Firefox“ naudoti kursyvo šrifto versiją, kai CSS žymos reikalauja įstrižai. Galbūt tai pastebėtų tik šrifto narkomanas. Tuo tarpu „Bugzilla“ klaida 1296269 praneša, kad „Comic Sans“ raidžių dalys yra susmulkintos, bent jau „Windows“. Šriftų dizaineriai daro skirtumą ir jiems tai svarbu. Kai visose naršyklėse jie negali gauti tikslaus išvaizdos ir savijautos, interneto dizaineriai gali būti kiek per daug nusivylę.

Šių klaidų yra šimtai, tūkstančiai, galbūt net milijonai. Šiuo metu susidūrėme su problemomis, kai vaizdai dingo mūsų TVS redagavimo priemonėje ir span žymose, kurios rodomos tik DOM.

Atminties nutekėjimas

Dažnai sunku pastebėti atminties nutekėjimą. Pagal apibrėžimą jie nekeičia jokių matomų savybių. Svetainė pateikiama teisingai, tačiau naršyklė neišvalo. Keletas per daug kelionių į svetaines, kurios sukelia nutekėjimą, o jūsų mašina lėtai nuskaito, nes visa RAM yra užrakinta, laikydama duomenų struktūrą, kuri niekada nebus pakeista. Taigi, OS pašėlusiai pakeičia virtualiosios atminties blokus į diską, o jūs praleidžiate laiką laukdami. Geriausias pasirinkimas yra perkrauti kompiuterį.

Išsami informacija apie atminties nutekėjimo klaidas gali būti beprotiškai paslaptinga, ir mums pasisekė, kad kai kurie programuotojai skiria laiko joms ištaisyti. Apsvarstykite 640578 numerį iš „Chronium“ naršyklės kamino. DOM dalies keitimas, besisukant su vidinisHTML nuosavybė nutekina atmintį. Pavyzdinis kodo gabalas su griežtu pakartotiniu ciklo iškvietimu requestAnimationFrame dubliuos problemą. Yra dešimtys tokių klausimų.

Žinoma, ne visada kalta naršyklė. Pavyzdžiui, „Chromium“ leidime 640922 taip pat išsamiai aprašyta atminties nuotėkis ir pateikiamas pavyzdys. Kita analizė rodo, kad kodo pavyzdys buvo kuriamas Data() objektai pakeliui išbandyti laiką, ir jie tikriausiai buvo problemos šaltinis.

Blykstė

Tai beveik oficialu. Visi pamiršo nuostabius antialiazinius meno kūrinius ir internetinius vaizdo įrašus, kuriuos „Adobe Flash“ atnešė į internetą. Mes jį kaltiname dėl visų avarijų, kurios galėjo būti ar ne dėl jos kaltės. Dabar jis oficialiai išleidžiamas į pensiją, bet tai nėra greitai. Atrodo, kad net kai kurios iš labiausiai į ateitį orientuotų kompanijų, stumiančių interneto standartus, savo puslapiuose turi „Flash“ kodą. Nustebau, kaip dažnai „Flash“ kodą randu ne „MySpace“ ir „GeoCities“ svetainėse.

Prisilietimai ir paspaudimai

Nėra lengva žongliruoti įvairiais įvesties tipais, ypač dabar, kai planšetiniai kompiuteriai ir telefonai sukuria prisilietimus, kurie gali veikti arba neveikti kaip pelės paspaudimas. Tada neturėtų stebinti tai, kad šioje srityje yra daugybė klaidų. „Bootstrap JavaScript“ sistema palaiko labiausiai įsiutusių klaidų sąrašą, o kai kurie iš blogiausių patenka į šią kategoriją.

Pavyzdžiui, „Safari“ kartais praleis pirštų bakstelėjimus ant žyma (151933). Kartais meniu neveikia „iPad“, nes naršyklė pakeitė stačiakampį ieškodama įvesties (150079). Kartais paspaudimai sukelia keistą daikto svyravimą - kuris netgi gali atrodyti, kad tai specialiai padarė nervingas dizaineris (158276). Visa tai sukelia painiavą, kai ekrane rodomas tekstas ar vaizdai nereaguoja taip, kaip mes tikimės.

Vaizdo įrašas

Planas visada buvo supaprastinti garso ir vaizdo pristatymą perkėlus atsakomybę naršyklės viduje ir iš papildinių pasaulio. Tai pašalino sąsajos problemas, tačiau nepašalino visų problemų. Vaizdo klaidų sąrašas yra ilgas, ir daugelis jų yra pernelyg matomi. „Bugzilla“ įraše 754753 aprašomi „dažniausiai raudonos ir žalios spalvos taškeliai, kuriuose yra įvairių vaiduoklių atvaizdų“, o „Bugzilla“ įraše 1302991 „trūkčioja geresnis žodis“.

Kai kurios sudėtingiausių problemų kyla, kai naršyklės integruoja įvairius šifravimo mechanizmus, skirtus piratavimui išvengti. Klaida 1304899 rodo, kad „Firefox“ automatiškai neatsisiunčia tinkamo šifravimo mechanizmo (EME) iš „Adobe“. Ar tai „Firefox“ kaltė? „Adobe“? O gal keistas įgaliojimas?

Vaizdo klaidos ir toliau dominuos. Integruojant žiniatinklio vaizdo įrašus su kitomis turinio formomis, pridedant vaizdo žymų į HTML5, dizaineriai atvėrė daug naujų galimybių, tačiau kiekviena nauja galimybė reiškia naujas klaidų ir neatitikimų atsiradimo galimybes.

Pakimba

Tinklalapio galimybė sekti pelę, judančią per puslapį, padeda interneto dizaineriams duoti vartotojams užuominų, kokios funkcijos gali būti paslėptos už paveikslėlio ar žodžio. Deja, sklandantys įvykiai ne visada pakyla į grandinę kuo greičiau.

Pavyzdžiui, naujoji „Microsoft Edge“ naršyklė neslepia žymeklio, kai pelė užveda ant kai kurių įvesties elementai (817822). Kartais svyravimas nesibaigia (5381673). Kartais užvedimo įvykis susiejamas su netinkamu elementu (7787318). Visa tai kelia painiavą ir neskatina naudoti gana tvarkingo efekto.

Kenkėjiška programa

Nors ir kyla pagunda visą kaltę dėl naršyklės klaidų prisiimti naršyklės kūrėjams, tai dažnai nesąžininga. Daugelį problemų sukelia kenkėjiškos programos, sukurtos kaip naudingi plėtiniai ar papildiniai. Daugeliu atvejų kenkėjiška programa daro kažką tikrai naudingo, o fone slapta vagia paspaudimus ar prekybą.

Problema ta, kad plėtinio sąsaja yra gana galinga. Plėtinys gali įterpti savavališkas žymas ir kodus į visas svetaines. Dešinėse rankose tai yra labai šaunu, bet lengva suprasti, kaip naujasis plėtinio kodas gali atsitrenkti į kodą iš svetainės. Ką? Jūs nenorėjote iš naujo apibrėžti $ funkcija?

Tai ne tiek klaida, kiek gili, filosofinė problema, turinti labai šaunią savybę. Tačiau turint didelę galią, tenka didelė atsakomybė - galbūt didesnė už bet kokį pratęsimo programuotoją. Geriausias būdas pažvelgti į šią problemą yra suvokti, kad tai yra ta sritis, kurioje mes, vartotojai, galime kontroliuoti. Galime išjungti plėtinius ir apriboti juos tik keliose svetainėse, kuriose nėra problemų. API yra šiek tiek per galinga kasdieniam naudojimui - tokia galinga, kad pagunda skambinti plėtinių API didžiausiomis klaidomis. Bet tai paneigtų viską, ką daro mums.

Susiję straipsniai

  • Be „jQuery“: „JavaScript“ struktūrų ekspertų vadovas
  • Peržiūra: išbandyti 7 „JavaScript“ IDE
  • HTML5 šaudymas: kaip „Chrome“, „Safari“, „Firefox“, IE ir „Opera“ matuojasi
  • Peržiūra: 13 „Primo Python“ žiniatinklio sistemų
  • Tinginio programavimo galia
  • Parsisiųsti: Kūrėjo karjeros tobulinimo vadovas
  • 7 blogos programavimo idėjos, kurios veikia
  • 9 blogi programavimo įpročiai, kuriuos slapta mėgstame
  • 21 karšta programavimo tendencija - ir 21 šalta