Straipsnių katalogas
Manėte, kad svetainė gera, o JS kodas stabilus kaip senas šuo, bet vos pakeitus mobiliosios naršyklės versiją, puslapis „pradėjo streikuoti“?
Labiausiai šokiruoja tai, kad kompiuteryje jis veikia normaliai, bet „Android“ telefone jus visiškai ignoruoja .
Tai ne pokštas, tai tyliai užsimezgusi naršyklės problema.
Problemos šaknis: ne ta, kad parašėte neteisingai, o ta, kad laikai jus apleido.

Tiesą sakant, dauguma kūrėjų, pamatę šį reiškinį, pirmiausia pagalvoja: ar JS sintaksėje yra klaida? Ar DOM neįkeltas? O gal leidimai užblokuoti?
Rezultatas? Nė vienas. Tikrasis kaltininkas pasirodė esąs tas senovinis raštas:
<script language="javascript">
Ši kodo eilutė buvo neįtikėtinai populiari prieš 20 metų ; ją buvo galima pamatyti kiekviename vadovėlyje.
Bet „Chromium“ 119 versijaPo to „Google“ atsisveikino su šia „antikvarine gramatika“: tol, kol matai language Atributus naršyklė selektyviai juos ignoruos ir net nesivargins jų paaiškinti.
Dėl suderinamumo priežasčių „Chrome“ darbalaukyje vis dar „laikinai tuo pasirūpina“; tačiau „Chrome“ mobiliojoje „Android“ versijoje yra „avangarde“ ir iš karto įjungė šią valymo strategiją.
Dėl to kompiuteris veikė gerai, bet mobilusis telefonas sugedo.
Kodėl „Android“ pirmiausia ėmėsi veiksmų?
Kai kurie žmonės gali paklausti: kodėl pirmiausia paleista „Android Chrome“?
Tai labai paprasta, nes mobiliojo terminalo atnaujinimo tempas yra greitesnis, o „Google“ informaciją siunčia taip greitai, kaip siunčia raudonus vokus.
2023 m. spalio 31 d. „ Google Play“ parduotuvėje buvo visiškai išleista „Chrome 119“, skirta „Android“.
Nors darbalaukio versija taip pat naudoja „Chromium“ branduolį, įprasta „laikyti ranką“, kad būtų išvengta staigaus daugybės vidinių įmonės sistemų sprogimo.
Taigi, jei vis dar vartojate frazę „language=javascript„Android“ telefonuose tai prilygsta skaidraus kodo rašymui, kurį naršyklė tiesiogiai ignoruoja.
Sprendimas: Atlikite tai per tris sekundes
Laimei, šios problemos sprendimas yra neįtikėtinai paprastas. Tiesiog pakeiskite šią eilutę:
<script>
Arba šiek tiek formaliau:
<script type="text/javascript">
Jį modifikuoti užtrunka tik kelias sekundes, o „Android Chrome“ jį nedelsdama vykdys.
Nepamirškite priverstinai atnaujinti talpyklos atlikę pakeitimus ; kitaip naršyklė gali vis dar skaityti seną failą. Metodas paprastas:
- Kompiuteris: Ctrl + F5
- Telefonas: Nustatymai → Privatumas → Išvalyti talpyklą
Atnaujinus kodą, jis atgaivinamas per kelias sekundes ir puslapis vėl pradeda veikti.
Tai iš tikrųjų yra „likvidavimas“.
Galiausiai ši problema buvo ne pati „JavaScript“, o veikiau susitaikymas su senuoju front-end kodu.
Naršyklių gamintojai turi padaryti labai aiškų darbą: palaipsniui išvalyti pasenusią sintaksę ir priversti kūrėjus atnaujinti.
Tai tarsi greitkelis: anksčiau triračiams ir traktoriams buvo leidžiama važiuoti greta, bet dabar dėl saugumo sumetimų juos reikia išvaryti. language="javascript" Tas traktorius neturėjo būti greitojoje juostoje.
Į ką turėtų atkreipti dėmesį kūrėjai?
Šis įvykis mums yra labai realus priminimas:
Kodo stilius yra labai svarbus. Kodas, kuris, jūsų manymu, „tiesiog turi būti paleistas“, vėlesnėse versijose gali sugesti.
Testavimo aplinka turi neatsilikti nuo tempo. Nereikia tiesiog spustelėti „Chrome“ naršyklėje kompiuteryje ir paleisti programos. Ją reikia išbandyti mobiliuosiuose įrenginiuose ir skirtingose naršyklių versijose.
Atkreipkite dėmesį į naršyklės atnaujinimų žurnalus. „Chromium“ atnaujinimai visada pateikiami su daugybe pranešimų „Nebepalaikoma ir pašalinama“. Jie skirti ne tik demonstravimui; jie gali sugriauti jūsų verslą.
Išvada: už kodo eilutės slypi technologinė evoliucija
Daugelis žmonių skundžiasi, kad „Google“ yra „neetiška“, tačiau iš aukštesnio požiūrio tai iš tikrųjų yra neišvengiamas procesas, kuris skatina visą interneto ekosistemą.
Senų atributų pašalinimas ir kūrėjų vertimas laikytis standartų yra technologinės civilizacijos iteracija.
Jei ir toliau būsime suderinami su visa pasenusia sintakse, priekinė dalis anksčiau ar vėliau taps apgriuvusiu kratiniu.
Todėl, taisydami šią mažą duobę, iš tikrųjų dalyvaujame „technologinės civilizacijos valymo judėjime“.
Ateinančiais metais panašių spąstų tik daugės, o vienintelis sprendimas – neatsilikti nuo laikmečio ir laikytis reglamentų.
Galutinė santrauka
- Kompiuteriai gali jį paleisti, bet „Android“ negali, nes
<script language="javascript">Nebenaudojamas. - 从 Chromas 119 „Android Chrome“ pirmauja praleidžiant
languageAtributas<script>gabalas. - Sprendimas yra: naudoti
<script>Arba<script type="text/javascript">. - Po modifikavimo atnaujinkite talpyklą ir problema bus atkurta.
- Kūrėjai visada turėtų atkreipti dėmesį į naršyklės atnaujinimus ir išsiugdyti įprotį rašyti kodą standartizuotu būdu.
Taigi, kitą kartą susidurdami su keista klaida, kai kompiuteris veikia gerai, bet telefonas neveikia, galite pagalvoti apie tai: ar jūsų kode yra paslėptas „praėjusio amžiaus reliktas“?
Tikiuosi, kad straipsnis „Kodėl JS kodas neveikia „Android Chrome“ naršyklėje? Atskleistos nevykdymo priežastys ir sprendimas vienu spustelėjimu!“, kuriuo pasidalino Chen Weiliango tinklaraštyje ( https://www.chenweiliang.com/ ), jums bus naudingas.
Nedvejodami pasidalinkite šio straipsnio nuoroda: https://www.chenweiliang.com/cwl-33236.html
