Защо JS кодът се проваля в Android Chrome? Разкрито: Решение с едно кликване!

Мислехте, че уебсайтът е добре и JS кодът е стабилен като старо куче, но веднага щом сменихте версията на мобилния браузър, страницата „стачкува“?

Най-скандалното е, че компютърът работи нормално,AndrewsНо телефонът напълно те игнорира.

Това не е шега, това е проблем с браузъра, който се случва тихомълком.

Коренът на проблема: Не е, че си го написал погрешно, а че времената са те изоставили.

Защо JS кодът се проваля в Android Chrome? Разкрито: Решение с едно кликване!

Всъщност, когато повечето разработчици видят това явление, първата им реакция е: Има ли грешка в JS синтаксиса? DOM не е ли зареден? Или разрешението е блокирано?

Резултатът? Никой от тях. Истинският виновник се оказа древният надпис:

<script language="javascript">

Този ред код беше популярен преди 20 годининеограничен, което може да се види във всички уроци.

但在 Хром версия 119След това Google се сбогува с тази „антична граматика“: стига да виждате language Атрибути, браузърът ще ги игнорира избирателно и дори няма да си направи труда да ги обясни.

От съображения за съвместимост, Chrome на настолни компютри все още „се грижи за това временно“; но Chrome на мобилни устройства с Android е „авангардът“ и веднага активира тази стратегия за почистване.

Така се появи:Компютърът работи добре, но мобилният телефон не работиПроблемът.

Защо Android предприе действия първи?

Някои хора може да попитат: Защо Android Chrome се стартира пръв?

Много е просто, защото темпото на надграждане на мобилния терминал е по-бързо, а Google изпраща информация със същата скорост, с която изпраща червени пликове.

2023 年 10 月 31 日Версията на Chrome 119 за Android е напълно пусната в Google Play.

Въпреки че десктоп версията също използва ядрото на Chromium, е обичайно да се „внимава“, за да се избегне внезапно взривяване на голям брой вътрешни корпоративни системи.

Така че, ако все още използвате фразата „language=javascript„, на телефони с Android това е еквивалентно на писането на прозрачен код, който браузърът игнорира директно.

Решение: Свършете го за три секунди

За щастие, решението на този проблем е изключително лесно. Просто заменете този ред:

<script>

Или малко по-формално:

<script type="text/javascript">

Отнема само няколко секунди, за да го промените, и Android Chrome ще го изпълни веднага.

Не забравяйте, че след модификациятаПринудително обновяване на кешаВ противен случай, браузърът може все още да чете стария файл. Методът също е прост:

  • Компютър: Ctrl + F5
  • Телефон: Настройки → Поверителност → Изчистване на кеша

След обновяване, кодът се възстановява за секунди и страницата започва да работи отново.

Това всъщност е „ликвидация“

В крайна сметка, проблемът този път не е проблемът на самия JS, аЕрата на наследения front-end код.

Това, което производителите на браузъри трябва да направят, е много ясно: постепенно да изчистят остарелия синтаксис и да принудят разработчиците да го актуализират.

Това е като магистрала: преди триколките и тракторите можеха да се движат един до друг, но сега от съображения за безопасност трябва да бъдат изгонени. language="javascript" Този трактор не трябваше да е на бързата лента.

На какво трябва да обърнат внимание разработчиците?

Този инцидент ни служи като много реалистично напомняне:

  1. Стандартите за кодиране са наистина важни Кодът, който смятате, че „просто работи“, може да спре да работи в определена версия.

  2. Тестовата среда трябва да е в крак с темпото Не просто кликвайте и публикувайте в Chrome на компютъра си. Трябва да го проверите на мобилни устройства и различни версии на браузъри.

  3. Следвайте лог файловете за актуализации на браузъра Всеки път, когато Chromium се обновява, има много „остарявания и премахване“. Това не са декорации, но наистина ще убият бизнеса ви.

Заключение: Зад един ред код се крие технологичната еволюция

Много хора се оплакват, че Google е „неетичен“, но от по-висша гледна точка това всъщност е неизбежен процес, който движи напред цялата уеб екосистема.

Премахването на стари атрибути и принуждаването на разработчиците да следват стандартите е итерацията на технологичната цивилизация.

Ако продължим да бъдем съвместими с всички остарели синтаксиси, front-end-ът рано или късно ще се превърне в тенджера с разнебитена смесица от неща.

Следователно, когато ремонтираме тази малка яма, ние всъщност участваме в „почистващо движение на технологичната цивилизация“.

През следващите няколко години ще има все повече и повече подобни капани и единственият противоотрова еБъдете в крак с времето и приемайте стандартите.

Окончателно резюме

  • Компютрите могат да го стартират, но Android не може, защото <script language="javascript"> Отхвърлено.
  • Chromium 119 Android Chrome е водещ в прескачането language Атрибут <script> 块。
  • Решението е: използвайте <script><script type="text/javascript">.
  • След модификацията, обновете кеша и проблемът ще бъде отстранен.
  • Разработчиците винаги трябва да обръщат внимание на актуализациите на браузъра и да развият навика да пишат код по стандартизиран начин.

Така че, следващия път, когато се сблъскате със странен бъг, при който компютърът работи добре, но телефонът не, може би е добре да помислите за следното: Дали в кода ви не е скрита „реликва от миналия век“?

Блог на Hope Chen Weiliang ( https://www.chenweiliang.com/ ) сподели „Защо JS кодът се проваля в Android Chrome? Причината за неизпълнението е разкрита и има решение с едно щракване!“, което може да ви е полезно.

Добре дошли да споделите връзката към тази статия:https://www.chenweiliang.com/cwl-33236.html

За да отключите още скрити трикове🔑, заповядайте в нашия Telegram канал!

Споделете и харесайте, ако ви харесва! Вашите споделяния и харесвания са нашата постоянна мотивация!

 

发表 评论

Вашият имейл адрес няма да бъде публикуван. Използват се задължителните полета * Етикет

Преминете към Top