Мақала анықтамалығы
Сіз веб-сайт жақсы және 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
- Телефон: Параметрлер → Құпиялық → Кэшті тазалау
Жаңартылғаннан кейін код секундтарда қайта жанданады және бет қайтадан жұмыс істей бастайды.
Бұл шын мәнінде «жою»
Қорытындылай келе, бұл жолғы мәселе JS-тің өз мәселесі емес, бірақФронттік мұра кодының дәуірі.
Браузер өндірушілеріне не істеу керектігі өте түсінікті: ескірген синтаксисті біртіндеп тазалап, әзірлеушілерді жаңартуға мәжбүрлеңіз.
Бұл тас жол сияқты: бұрын үш велосипедтер мен тракторлардың қатар жүруіне рұқсат етілген, бірақ қазір қауіпсіздік мақсатында оларды қуып шығуға тура келеді. 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/ ) "Android Chrome жүйесінде JS коды неге істен шығады? Орындалмау себебі анықталды және бір рет басу арқылы шешім! " деп бөлісті, бұл сізге пайдалы болуы мүмкін.
Осы мақаланың сілтемесін бөлісуге қош келдіңіз:https://www.chenweiliang.com/cwl-33236.html
