Mengapa Kod JavaScript Gagal pada Android Chrome? Terdedah: Penyelesaian Satu Klik!

Anda fikir tapak web itu baik dan kod JS stabil seperti anjing lama, tetapi sebaik sahaja anda menukar versi penyemak imbas mudah alih, halaman itu "mogok"?

Perkara yang paling keterlaluan ialah: komputer berfungsi dengan normal,AndroidTetapi telefon benar-benar mengabaikan anda.

Ini bukan jenaka, ia adalah isu pelayar yang berlaku secara senyap-senyap.

Punca masalah: Bukan anda salah menulis, tetapi zaman telah meninggalkan anda

Mengapa Kod JavaScript Gagal pada Android Chrome? Terdedah: Penyelesaian Satu Klik!

Malah, apabila kebanyakan pembangun melihat fenomena ini, reaksi pertama mereka ialah: Adakah terdapat pepijat dalam sintaks JS? Adakah DOM tidak dimuatkan? Atau adakah kebenaran itu disekat?

Hasilnya? Tiada seorang pun daripada mereka. Penyebab sebenar ternyata adalah tulisan kuno itu:

<script language="javascript">

Barisan kod ini popular 20 tahun lalutidak terhad, yang boleh dilihat dalam semua tutorial.

Tetapi di Chromium versi 119Selepas itu, Google mengucapkan selamat tinggal kepada "tatabahasa antik" ini: selagi anda melihat language Atribut, penyemak imbas secara selektif akan mengabaikannya dan tidak peduli untuk menerangkannya.

Atas sebab keserasian, Chrome pada desktop masih "menjaganya buat sementara waktu"; tetapi Chrome pada Android mudah alih ialah "pelopor" dan segera mendayakan strategi pembersihan ini.

Jadi ia muncul:Komputer berfungsi dengan baik, tetapi telefon bimbit tidak berfungsiMasalah.

Mengapakah Android mengambil tindakan terlebih dahulu?

Sesetengah orang mungkin bertanya: Mengapa Android Chrome dilancarkan dahulu?

Ia sangat mudah, kerana kadar peningkatan terminal mudah alih adalah lebih pantas, dan Google menolak maklumat sepantas menghantar sampul merah.

2023 Oktober 10, Chrome 119 versi Android telah ditolak sepenuhnya melalui Google Play.

Walaupun versi desktop juga menggunakan kernel Chromium, adalah kebiasaan untuk "menjaga tangan" untuk mengelakkan tiba-tiba meletupkan sejumlah besar sistem korporat dalaman.

Jadi, jika anda masih menggunakan frasa "language=javascript", pada telefon Android ia adalah sama dengan menulis kod lutsinar, yang penyemak imbas diabaikan secara langsung.

Penyelesaian: Selesaikan dalam masa tiga saat

Nasib baik, penyelesaian untuk masalah ini sangat mudah. Gantikan sahaja baris ini:

<script>

Atau lebih formal sedikit:

<script type="text/javascript">

Ia hanya mengambil masa beberapa saat untuk mengubah suainya dan Android Chrome akan melaksanakannya dengan serta-merta.

Ingat, selepas pengubahsuaianPaksa muat semula cacheJika tidak, penyemak imbas mungkin masih membaca fail lama. Kaedahnya juga mudah:

  • Komputer: Ctrl + F5
  • Telefon: Tetapan → Privasi → Kosongkan Cache

Setelah dimuat semula, kod dihidupkan semula dalam beberapa saat dan halaman mula berjalan semula.

Ini sebenarnya adalah "pencairan"

Pada analisis akhir, masalah kali ini bukanlah masalah JS sendiri, tetapiEra kod warisan bahagian hadapan.

Perkara yang perlu dilakukan oleh pengeluar penyemak imbas adalah sangat jelas: bersihkan sintaks yang lapuk secara beransur-ansur dan paksa pembangun untuk mengemas kini.

Ia seperti lebuh raya: basikal roda tiga dan traktor dibenarkan berjalan beriringan, tetapi sekarang atas sebab keselamatan mereka terpaksa dihalau keluar. language="javascript" Traktor itu tidak sepatutnya berada di lorong laju.

Apakah yang perlu diberi perhatian oleh pemaju?

Insiden ini berfungsi sebagai peringatan yang sangat realistik kepada kami:

  1. Piawaian pengekodan sangat penting Kod yang anda fikir "hanya berfungsi" mungkin berhenti berfungsi dalam versi tertentu.

  2. Persekitaran ujian mesti mengikuti rentak Jangan hanya klik dan terbitkan dalam Chrome pada komputer anda. Anda perlu menyemaknya pada peranti mudah alih dan versi penyemak imbas yang berbeza.

  3. Ikuti log kemas kini penyemak imbas Setiap kali Chromium dinaik taraf, terdapat banyak "Pemberhentian dan Pembuangan". Ini bukan hiasan, tetapi benar-benar akan membunuh perniagaan anda.

Kesimpulan: Di sebalik barisan kod adalah evolusi teknologi

Ramai orang mengadu bahawa Google adalah "tidak beretika," tetapi dari perspektif yang lebih tinggi, ini sebenarnya proses yang tidak dapat dielakkan yang memacu keseluruhan ekosistem Web ke hadapan.

Menghapuskan sifat lama dan memaksa pemaju untuk mengikut piawaian adalah lelaran tamadun teknologi.

Jika kita terus serasi dengan semua sintaks yang lapuk, hujung hadapan lambat laun akan menjadi periuk galah usang.

Oleh itu, apabila kita membaiki lubang kecil ini, kita sebenarnya mengambil bahagian dalam "gerakan pembersihan tamadun teknologi."

Dalam beberapa tahun akan datang, akan ada lebih banyak perangkap serupa, dan satu-satunya penawar adalahSelaras dengan masa dan terima standard.

Ringkasan akhir

  • Komputer boleh menjalankannya, tetapi Android tidak boleh, kerana <script language="javascript"> Ditamatkan.
  • Chromium 119 Android Chrome mendahului dalam melangkau language Atribut <script> 块。
  • Penyelesaiannya ialah: gunakan <script><script type="text/javascript">.
  • Selepas pengubahsuaian, muat semula cache dan masalah akan dipulihkan.
  • Pembangun harus sentiasa memberi perhatian kepada kemas kini penyemak imbas dan membangunkan tabiat menulis kod dengan cara yang standard.

Jadi, pada masa akan datang anda menghadapi pepijat aneh di mana komputer berfungsi dengan baik tetapi telefon tidak berfungsi, anda mungkin perlu memikirkan perkara ini: Adakah terdapat "peninggalan dari abad lalu" yang tersembunyi dalam kod anda?

发表 评论

Alamat e-mel anda tidak akan diterbitkan. 必填 项 已 用 * 标注

Direktori Artikel
Tatal ke