Article Directory
- 1 Көйгөйдүн тамыры: бул туура эмес жазганыңызда эмес, мезгил сизди таштап кеткенинде
- 2 Эмне үчүн Android биринчи чара көрдү?
- 3 Чечим: үч секунданын ичинде бүтүрүңүз
- 4 Бул чындыгында "жоюу"
- 5 Иштеп чыгуучулар эмнеге көңүл бурушу керек?
- 6 Жыйынтык: Коддун артында технологиялык эволюция турат
- 7 Акыркы корутунду
Сиз веб-сайтты жакшы деп ойлодуңуз жана JS коду эски иттей туруктуу деп ойлодуңуз, бирок сиз мобилдик браузердин версиясын өзгөрткөнүңүз менен, баракча "иш таштады"?
Эң таң калыштуусу: компьютер кадимкидей иштейт,AndroidБирок телефон сени таптакыр тоготпойт.
Бул тамаша эмес, бул тынч жүрүп жаткан браузер маселеси.
Көйгөйдүн тамыры: бул туура эмес жазганыңызда эмес, мезгил сизди таштап кеткенинде

Чынында, көпчүлүк иштеп чыгуучулар бул көрүнүштү көргөндө, алардын биринчи реакциясы: JS синтаксисинде ката барбы? DOM жүктөлгөн жокбу? Же уруксат бөгөттөлгөнбү?
Натыйжа? Алардын бири да. Чыныгы күнөөлүү ошол байыркы жазуу болуп чыкты:
<script language="javascript">
Бул код сап 20 жыл мурун популярдуу болгонЖ, муну бардык окуу куралдарынан көрүүгө болот.
Бирок Chromium версиясы 119Андан кийин Google бул "антик грамматика" менен коштошту: сиз көрүп турганча language Атрибуттар, браузер тандалып аларды четке кагып, аларды түшүндүрүп да койбойт.
Шайкештиктин себептеринен улам, иш тактадагы Chrome дагы эле "убактылуу кам көрүүдө"; бирок мобилдик Androidдеги Chrome "авангард" жана дароо бул тазалоо стратегиясын иштетти.
Ошентип, пайда болду:Компьютер жакшы иштейт, бирок уюлдук телефон иштебейтМаселе.
Эмне үчүн 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
- Телефон: Орнотуулар → Купуялык → Кэшти тазалоо
Жаңылангандан кийин код секунданын ичинде жанданып, барак кайра иштей баштайт.
Бул чындыгында "жоюу"
Жыйынтыктап айтканда, бул жолку көйгөй ЖСтин өзүндө эмес, бирокФронттук эски коддун доору.
Браузердин өндүрүүчүлөрү эмне кылышы керек экендиги абдан түшүнүктүү: эскирген синтаксисти акырындык менен тазалап, иштеп чыгуучуларды жаңыртууга мажбурлаңыз.
Бул чоң жол сыяктуу: мурда үч велосипед менен тракторлор жанаша жүрүүгө уруксат берилген, бирок азыр коопсуздук үчүн аларды айдап чыгууга туура келет. language="javascript" Тиги трактор ылдамдыкта жүрбөш керек эле.
Иштеп чыгуучулар эмнеге көңүл бурушу керек?
Бул окуя бизге абдан реалдуу эскертүү катары кызмат кылат:
Коддоо стандарттары чынында эле маанилүү Сиз "жөн эле иштейт" деп ойлогон код белгилүү бир версияда иштебей калышы мүмкүн.
Сыноо чөйрөсү темп менен бирге болушу керек Жөн эле чыкылдатып, компьютериңиздеги Chrome'го жарыялабаңыз. Сиз аны мобилдик түзмөктөрдө жана браузерлердин ар кандай версияларында текшеришиңиз керек.
Браузерди жаңыртуу журналдарын ээрчиңиз Chromium жаңыртылган сайын көптөгөн "Эскөө жана алып салуу" болот. Бул жасалгалар эмес, бирок чындап эле бизнесиңизди өлтүрөт.
Жыйынтык: Коддун артында технологиялык эволюция турат
Көптөгөн адамдар Google "этикага туура келбейт" деп даттанышат, бирок жогорураак көз караштан алганда, бул чындыгында бүткүл Веб экосистеманы алдыга жылдырган сөзсүз процесс.
Эски атрибуттарды жок кылуу жана иштеп чыгуучуларды стандарттарды аткарууга мажбурлоо - бул технологиялык цивилизациянын кайталанышы.
Эгерде биз бардык эскирген синтаксис менен шайкеш боло берсек, анда алдыңкы аягы эртеби-кечпи бузулган ходжеподждун казанына айланат.
Демек, биз бул кичинекей чуңкурду оңдогондо чындыгында “технологиялык цивилизацияны тазалоо кыймылына” катышып жатабыз.
Жакынкы бир нече жыл ичинде, ушул сыяктуу тузактар дагы көп болот, жана бир гана антидот болуп саналатЗаман менен кадам таштаңыз жана стандарттарды кабыл алыңыз.
Акыркы корутунду
- Компьютерлер аны иштете алат, бирок 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 каналыбызга кошулуңуз!
Бөлүшүп, жакса лайк! Сиздин бөлүшүүлөрүңүз жана лайктарыңыз биздин туруктуу мотивациябыз!