Artiklite kataloog
Sa arvasid, et veebileht on korras ja JS kood stabiilne nagu vana koer, aga niipea kui mobiilibrauseri versiooni vahetasid, hakkas leht "streikima"?
Kõige pöörasem on see, et arvuti töötab normaalselt,AndroidAga telefon ignoreerib sind täielikult.
See pole nali, see on brauseri probleem, mis on vaikselt tekkinud.
Probleemi juur: Asi pole selles, et sa kirjutasid valesti, vaid selles, et ajad on su hüljanud.

Tegelikult on enamiku arendajate esimene reaktsioon selle nähtuse ilmnemisel järgmine: kas JS-i süntaksis on viga? Kas DOM pole laaditud? Või on õigused blokeeritud?
Tulemus? Mitte ükski neist. Tegelikuks süüdlaseks osutus see iidne kiri:
<script language="javascript">
See koodirida oli populaarne 20 aastat tagasipiiramatu, mida saab näha kõigis õpetustes.
Aga Chromiumi versioon 119Pärast seda jättis Google selle "antiikgrammatikaga" hüvasti: niikaua kui sa näed language Atribuudid, brauser ignoreerib neid valikuliselt ega vaevu neid isegi selgitama.
Ühilduvuse huvides hoolitseb Chrome lauaarvutis selle eest endiselt ajutiselt, kuid Chrome mobiilseadmetes Androidis on "eelisarnane" ja lubas selle puhastusstrateegia kohe.
Seega see ilmus:Arvuti töötab hästi, aga mobiiltelefon ei töötaProbleem.
Miks Android esimesena tegutses?
Mõned inimesed võivad küsida: miks Android Chrome esimesena käivitati?
See on väga lihtne, sest mobiilterminali uuendamise tempo on kiirem ja Google edastab teavet sama kiiresti kui punaste ümbrike saatmine.
在 2023 10 年 月 日 31Chrome 119 Androidi versioon on täielikult Google Play kaudu saadaval.
Kuigi ka töölauaversioon kasutab Chromiumi kernelit, on tavaks "kätt hoida", et vältida suure hulga ettevõtte sisesüsteemide ootamatut õhkutõusmist.
Seega, kui te ikka veel kasutate fraasi "language=javascript", Android-telefonides on see samaväärne läbipaistva koodi kirjutamisega, mida brauser otse ignoreerib.
Lahendus: Saage see tehtud kolme sekundiga
Õnneks on selle probleemi lahendus uskumatult lihtne. Lihtsalt asenda see rida:
<script>
Või veidi ametlikumalt:
<script type="text/javascript">
Selle muutmine võtab vaid paar sekundit ja Android Chrome käivitab selle kohe.
Pea meeles, et pärast muudatustVahemälu sundvärskendaVastasel juhul võib brauser ikka veel vana faili lugeda. Meetod on samuti lihtne:
- Arvuti: Ctrl + F5
- Telefon: Seaded → Privaatsus → Tühjenda vahemälu
Pärast värskendamist taaselustatakse kood sekunditega ja leht hakkab uuesti töötama.
See on tegelikult "likvideerimine".
Lõppkokkuvõttes pole seekord probleem mitte JS-is endas, vaidEsiotsa pärandkoodi ajastu.
See, mida brauseritootjad peavad tegema, on väga selge: järk-järgult puhastada aegunud süntaks ja sundida arendajaid uuendama.
See on nagu maantee: kolmerattalised ja traktorid võisid varem kõrvuti sõita, aga nüüd tuleb ohutuskaalutlustel välja sõita. language="javascript" See traktor ei oleks tohtinud kiirrajal olla.
Millele peaksid arendajad tähelepanu pöörama?
See juhtum on meile väga realistlik meeldetuletus:
Kodeerimisstandardid on tõesti olulised Kood, mis sinu arvates "lihtsalt töötab", võib teatud versioonis töötamise lõpetada.
Testikeskkond peab tempoga sammu pidama Ära lihtsalt klõpsa ja avalda oma arvuti Chrome'is. Sa pead seda kontrollima ka mobiilseadmetes ja brauserite erinevates versioonides.
Jälgi brauseri värskenduslogisid Iga kord, kui Chromiumi uuendatakse, on seal palju "aegumise ja eemaldamise" märke. Need ei ole küll kaunistused, aga hävitavad teie äri.
Kokkuvõte: Koodirea taga on tehnoloogiline areng
Paljud inimesed kurdavad, et Google on "ebaeetiline", aga kõrgemast vaatenurgast on see tegelikult vältimatu protsess, mis viib kogu veebiökosüsteemi edasi.
Vanade omaduste kõrvaldamine ja arendajate sundimine standarditele vastavalt tegutsema on tehnoloogilise tsivilisatsiooni kordus.
Kui jätkame ühilduvust kogu aegunud süntaksiga, muutub esiots varem või hiljem lagunenud segapudruks.
Seega, kui me seda väikest auku parandame, osaleme tegelikult "tehnoloogilise tsivilisatsiooni puhastusliikumises".
Järgmise paari aasta jooksul tuleb üha rohkem sarnaseid lõkse ja ainus vastumürk onKäi ajaga kaasas ja võta omaks standardid.
Lõplik kokkuvõte
- Arvutid saavad seda käitada, aga Android mitte, sest
<script language="javascript">Aegunud. - 从 Chromium 119 Android Chrome võtab vahelejätmises juhtpositsiooni
languageAtribuut<script>tükk. - Lahendus on: kasutage
<script>Või<script type="text/javascript">. - Pärast muutmist värskenda vahemälu ja probleem taastub.
- Arendajad peaksid alati pöörama tähelepanu brauseri värskendustele ja arendama harjumust kirjutada koodi standardiseeritud viisil.
Seega, kui järgmine kord puutute kokku kummalise veaga, kus arvuti töötab hästi, aga telefon ei tööta, võiksite sama hästi mõelda järgmisele: kas teie koodis on peidus mõni „eelmise sajandi reliikvia”?
Hope Chen Weiliangi ajaveeb ( https://www.chenweiliang.com/ ) jagas artiklit „Miks JS-kood Android Chrome'is ebaõnnestub? Selgub mittetäitmise põhjus ja ühe klõpsuga lahendus!“, mis võib teile abiks olla.
Jaga julgelt seda artikli linki: https://www.chenweiliang.com/cwl-33236.html
