Artikkelkatalog
- 1 Roten til problemet: Det er ikke at du skrev det feil, men at tiden har forlatt deg.
- 2 Hvorfor tok Android grep først?
- 3 Løsning: Få det gjort på tre sekunder
- 4 Dette er faktisk en «likvidasjon»
- 5 Hva bør utviklere være oppmerksomme på?
- 6 Konklusjon: Bak en kodelinje ligger teknologisk utvikling
- 7 Endelig sammendrag
Du trodde nettsiden var fin og JS-koden var stabil som en gammel hund, men så snart du endret mobilnettleserversjon, «streiket» siden?
Det mest opprørende er: datamaskinen kjører normalt,AndroidMen telefonen ignorerer deg fullstendig.
Dette er ingen spøk, det er et nettleserproblem som har oppstått i det stille.
Roten til problemet: Det er ikke at du skrev det feil, men at tiden har forlatt deg.

Faktisk, når de fleste utviklere ser dette fenomenet, er deres første reaksjon: Er det en feil i JS-syntaksen? Er ikke DOM-en lastet inn? Eller er tillatelsen blokkert?
Resultatet? Ingen av dem. Den virkelige synderen viste seg å være den eldgamle skriften:
<script language="javascript">
Denne kodelinjen var populær for 20 år sidenubegrenset, som kan sees i alle veiledninger.
Men i Chromium versjon 119Etter det sa Google farvel til denne «antikke grammatikken»: så lenge du ser language Attributter, vil nettleseren selektivt ignorere dem og ikke engang gidde å forklare dem.
Av kompatibilitetsgrunner «tar Chrome seg fortsatt av det midlertidig» på datamaskiner, men Chrome på mobil-Android er i «forkant» og aktiverte denne rengjøringsstrategien umiddelbart.
Så det viste seg:Datamaskinen fungerer fint, men mobiltelefonen fungerer ikkeProblemet.
Hvorfor tok Android grep først?
Noen spør kanskje: Hvorfor lanseres Android Chrome først?
Det er veldig enkelt, fordi oppgraderingshastigheten til mobilterminalen er raskere, og Google sender informasjon like raskt som å sende røde konvolutter.
在 I januar 2023 10 31 DayChrome 119 Android-versjonen er nå tilgjengelig i sin helhet på Google Play.
Selv om skrivebordsversjonen også bruker Chromium-kjernen, er det vanlig å «holde en hånd med» for å unngå å plutselig sprenge et stort antall interne bedriftssystemer.
Så, hvis du fortsatt bruker uttrykket «language=javascript", på Android-telefoner tilsvarer det å skrive en gjennomsiktig kode, som nettleseren ignorerer direkte.
Løsning: Få det gjort på tre sekunder
Heldigvis er løsningen på dette problemet utrolig enkel. Bare erstatt denne linjen:
<script>
Eller litt mer formelt:
<script type="text/javascript">
Det tar bare noen få sekunder å endre det, og Android Chrome vil umiddelbart kjøre det.
Husk, etter modifikasjonenTving oppdatering av hurtigbufferEllers kan det hende at nettleseren fortsatt leser den gamle filen. Metoden er også enkel:
- Datamaskin: Ctrl + F5
- Telefon: Innstillinger → Personvern → Tøm hurtigbuffer
Når koden er oppdatert, gjenopplives den i løpet av sekunder, og siden begynner å kjøre igjen.
Dette er faktisk en «likvidasjon»
Til syvende og sist er problemet denne gangen ikke JS i seg selv, menÆraen med eldre front-end-kode.
Det nettleserprodusenter må gjøre er veldig tydelig: gradvis rydde opp i den utdaterte syntaksen og tvinge utviklere til å oppdatere.
Det er som en motorvei: trehjulssykler og traktorer fikk lov til å kjøre side om side før, men nå må de av sikkerhetsmessige årsaker kjøres ut. language="javascript" Den traktoren burde ikke ha vært i fartsfeltet.
Hva bør utviklere være oppmerksomme på?
Denne hendelsen tjener som en veldig realistisk påminnelse for oss:
Kodestandarder er veldig viktige Koden du tror «bare fungerer» kan slutte å virke i en bestemt versjon.
Testmiljøet må holde tritt med tempoet Ikke bare klikk og publiser i Chrome på datamaskinen din. Du må sjekke det på mobiltelefonen din og forskjellige versjoner av nettlesere.
Følg oppdateringsloggene for nettleseren Hver gang Chromium oppgraderes, er det mange «avskrivninger og fjerninger». Dette er ikke pynt, men det vil virkelig ødelegge virksomheten din.
Konklusjon: Bak en kodelinje ligger teknologisk utvikling
Mange klager over at Google er «uetisk», men fra et høyere perspektiv er dette faktisk en uunngåelig prosess som driver hele nettøkosystemet fremover.
Å eliminere gamle attributter og tvinge utviklere til å følge standarder er en iterasjon av teknologisk sivilisasjon.
Hvis vi fortsetter å være kompatible med all utdatert syntaks, vil frontenden før eller siden bli en gryte med forfalne sammensurium.
Derfor, når vi reparerer denne lille gropen, deltar vi faktisk i en «rensebevegelse av teknologisk sivilisasjon».
I løpet av de neste årene vil det dukke opp flere og flere lignende fallgruver, og den eneste motgiften erHold tritt med tiden og omfavn standarder.
Endelig sammendrag
- Datamaskiner kan kjøre det, men Android kan ikke, fordi
<script language="javascript">Utdatert. - 从 Krom 119 Android Chrome tar ledelsen i å hoppe over
languageAttributt<script>stykke. - Løsningen er: bruk
<script>eller<script type="text/javascript">. - Etter endringen, oppdater hurtigbufferen, så vil problemet bli løst.
- Utviklere bør alltid følge med på nettleseroppdateringer og utvikle vanen med å skrive kode på en standardisert måte.
Så neste gang du støter på en merkelig feil der datamaskinen fungerer fint, men telefonen ikke fungerer, kan du like gjerne tenke på dette: Er det en «relikvie fra forrige århundre» skjult i koden din?
Hope Chen Weiliang blogg ( https://www.chenweiliang.com/ ) delte «Hvorfor feiler JS-kode i Android Chrome? Årsaken til manglende kjøring er avslørt, og det finnes en ettklikksløsning!», som kan være nyttig for deg.
Velkommen til å dele lenken til denne artikkelen:https://www.chenweiliang.com/cwl-33236.html
