Waarom mislukt JS-code in Android Chrome? Onthuld: Oplossing met één klik!

Je dacht dat de website prima was en dat de JS-code zo stabiel was als een deur, maar zodra je de mobiele browserversie veranderde, ging de pagina "in staking"?

Het meest schandalige is: de computer draait normaal,AndroidMaar de telefoon negeert je volledig.

Dit is geen grap, het is een browserprobleem dat zich in stilte voordoet.

De kern van het probleem: het is niet dat je het verkeerd hebt geschreven, maar dat de tijd je in de steek heeft gelaten

Waarom mislukt JS-code in Android Chrome? Onthuld: Oplossing met één klik!

Wanneer de meeste ontwikkelaars dit fenomeen zien, is hun eerste reactie: zit er een bug in de JS-syntaxis? Is de DOM niet geladen? Of zijn de rechten geblokkeerd?

Het resultaat? Geen van allen. De echte boosdoener bleek dat oude schrift te zijn:

<script language="javascript">

Deze regel code was 20 jaar geleden populaironbeperkt, die in alle tutorials te zien is.

Maar in Chromium-versie 119Daarna heeft Google afscheid genomen van deze 'antieke grammatica': zolang je maar ziet language Attributen worden door de browser selectief genegeerd en er wordt niet eens de moeite genomen om ze uit te leggen.

Om compatibiliteitsredenen wordt dit op desktopcomputers nog 'tijdelijk' opgelost, maar Chrome op mobiel Android loopt voorop en heeft deze opschoonstrategie direct ingeschakeld.

Het bleek dus zo te zijn:Computer werkt prima, maar mobiele telefoon werkt nietHet probleem.

Waarom ondernam Android als eerste actie?

Sommige mensen vragen zich af: waarom wordt Android Chrome als eerste gelanceerd?

Het is heel eenvoudig, omdat de upgradesnelheid van de mobiele terminal hoger ligt en Google informatie net zo snel verstuurt als het versturen van rode enveloppen.

2023 oktober 10De Android-versie van Chrome 119 is volledig via Google Play beschikbaar.

Hoewel de desktopversie ook de Chromium-kernel gebruikt, is het gebruikelijk om "een handje" te helpen om te voorkomen dat plotseling een groot aantal interne bedrijfssystemen vastloopt.

Dus als je nog steeds de uitdrukking "language=javascriptOp Android-telefoons komt dit neer op het schrijven van een transparante code, die de browser direct negeert.

Oplossing: Doe het in drie seconden

Gelukkig is de oplossing voor dit probleem ongelooflijk eenvoudig. Vervang gewoon deze regel:

<script>

Of iets formeler:

<script type="text/javascript">

Het duurt slechts enkele seconden om de wijziging door te voeren en Android Chrome voert deze onmiddellijk uit.

Onthoud dat na de wijzigingCache geforceerd vernieuwenAnders is het mogelijk dat de browser nog steeds het oude bestand leest. De methode is ook eenvoudig:

  • Computer: Ctrl + F5
  • Telefoon: Instellingen → Privacy → Cache wissen

Zodra de code is vernieuwd, wordt deze binnen enkele seconden opnieuw weergegeven en wordt de pagina opnieuw weergegeven.

Dit is feitelijk een "liquidatie"

Uiteindelijk is het probleem deze keer niet het probleem van JS zelf, maarHet tijdperk van front-end legacy code.

Wat browserfabrikanten moeten doen is heel duidelijk: geleidelijk de verouderde syntaxis opruimen en ontwikkelaars dwingen om updates uit te brengen.

Het is net als op een snelweg: vroeger mochten driewielers en tractoren naast elkaar rijden, maar nu moeten ze vanwege de veiligheid weg. language="javascript" Die tractor had niet op de vluchtstrook mogen rijden.

Waar moeten ontwikkelaars op letten?

Dit voorval dient voor ons als een zeer realistische herinnering:

  1. Coderingsnormen zijn echt belangrijk De code waarvan u denkt dat die "gewoon werkt", werkt mogelijk niet meer in een bepaalde versie.

  2. De testomgeving moet gelijke tred houden met het tempo Klik en publiceer niet zomaar in Chrome op je computer. Je moet het controleren op mobiele apparaten en verschillende browserversies.

  3. Volg browserupdatelogs Elke keer dat Chromium wordt geüpgraded, zijn er veel "Deprecation and Removals". Dit zijn geen versieringen, maar zullen je bedrijf echt de das omdoen.

Conclusie: Achter een regel code schuilt technologische evolutie

Veel mensen klagen dat Google "onethisch" is, maar vanuit een hoger perspectief is dit eigenlijk een onvermijdelijk proces dat het hele webecosysteem vooruithelpt.

Het elimineren van oude kenmerken en het dwingen van ontwikkelaars om standaarden te volgen, is de herhaling van de technologische beschaving.

Als we compatibel blijven met alle verouderde syntaxis, zal de front-end vroeg of laat een puinhoop worden.

Wanneer we dit kleine putje repareren, dragen we dus feitelijk bij aan een ‘schoonmaakbeweging van de technologische beschaving’.

In de komende jaren zullen er steeds meer van dergelijke valkuilen ontstaan, en het enige tegengif isBlijf met de tijd mee en omarm de normen.

Laatste samenvatting

  • Computers kunnen het draaien, maar Android niet, omdat <script language="javascript"> Verouderd.
  • Chromium 119 Android Chrome neemt het voortouw bij het overslaan language Attribuut <script> 块。
  • De oplossing is: gebruik <script><script type="text/javascript">.
  • Na de aanpassing ververst u de cache. Het probleem zal dan worden opgelost.
  • Ontwikkelaars moeten altijd letten op browserupdates en de gewoonte ontwikkelen om code op een gestandaardiseerde manier te schrijven.

Dus de volgende keer dat u een vreemde bug tegenkomt waarbij de computer prima werkt, maar de telefoon niet, kunt u net zo goed hierover nadenken: zit er een "relikwie uit de vorige eeuw" verborgen in uw code?

发表 评论

Uw e-mailadres wordt niet gepubliceerd. 必填 项 已 用 * 标注

Scroll naar boven