Справочник на статиите
- 1 Коренът на проблема: Не е, че си го написал погрешно, а че времената са те изоставили.
- 2 Защо Android предприе действия първи?
- 3 Решение: Свършете го за три секунди
- 4 Това всъщност е „ликвидация“
- 5 На какво трябва да обърнат внимание разработчиците?
- 6 Заключение: Зад един ред код се крие технологичната еволюция
- 7 Окончателно резюме
Мислехте, че уебсайтът е добре и JS кодът е стабилен като старо куче, но веднага щом сменихте версията на мобилния браузър, страницата „стачкува“?
Най-скандалното е, че компютърът работи нормално,AndrewsНо телефонът напълно те игнорира.
Това не е шега, това е проблем с браузъра, който се случва тихомълком.
Коренът на проблема: Не е, че си го написал погрешно, а че времената са те изоставили.

Всъщност, когато повечето разработчици видят това явление, първата им реакция е: Има ли грешка в 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" Този трактор не трябваше да е на бързата лента.
На какво трябва да обърнат внимание разработчиците?
Този инцидент ни служи като много реалистично напомняне:
Стандартите за кодиране са наистина важни Кодът, който смятате, че „просто работи“, може да спре да работи в определена версия.
Тестовата среда трябва да е в крак с темпото Не просто кликвайте и публикувайте в Chrome на компютъра си. Трябва да го проверите на мобилни устройства и различни версии на браузъри.
Следвайте лог файловете за актуализации на браузъра Всеки път, когато 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 канал!
Споделете и харесайте, ако ви харесва! Вашите споделяния и харесвания са нашата постоянна мотивация!