เหตุใดโค้ด JS ถึงล้มเหลวบน Android Chrome? เปิดเผย: วิธีแก้ปัญหาด้วยการคลิกเพียงครั้งเดียว!

คุณคิดว่าเว็บไซต์นั้นดีและโค้ด JS มีเสถียรภาพเหมือนสุนัขแก่ แต่ทันทีที่คุณเปลี่ยนเวอร์ชันเบราว์เซอร์มือถือ หน้าเว็บก็ "หยุดทำงาน" ใช่ไหม

สิ่งที่น่าประหลาดใจที่สุดคือ มันใช้งานได้ปกติบนคอมพิวเตอร์แต่กลับไม่ตอบสนองใดๆ เลยบน โทรศัพท์ Android

นี่ไม่ใช่เรื่องตลก มันเป็นปัญหาของเบราว์เซอร์ที่เกิดขึ้นอย่างเงียบๆ

ต้นตอของปัญหา: ไม่ใช่ว่าคุณเขียนผิด แต่เป็นเพราะกาลเวลาได้ละทิ้งคุณไปแล้ว

เหตุใดโค้ด JS ถึงล้มเหลวบน Android Chrome? เปิดเผย: วิธีแก้ปัญหาด้วยการคลิกเพียงครั้งเดียว!

อันที่จริง เมื่อนักพัฒนาส่วนใหญ่เห็นปรากฏการณ์นี้ ปฏิกิริยาแรกของพวกเขาคือ มีบั๊กในไวยากรณ์ JS หรือไม่? DOM ไม่ได้โหลดขึ้นมาหรือ? หรือสิทธิ์ถูกบล็อก?

ผลลัพธ์? ไม่มีเลยสักอย่าง ผู้ร้ายตัวจริงกลับกลายเป็นข้อเขียนโบราณนั่น:

<script language="javascript">

โค้ดบรรทัดนี้ ได้รับความนิยมอย่างมากเมื่อ 20 ปีที่แล้วคุณจะเห็นมันได้ในบทช่วยสอนทุกอันเลย

แต่ใน โครเมียมเวอร์ชัน 119หลังจากนั้น Google ก็บอกลา "ไวยากรณ์โบราณ" นี้ไป: ตราบใดที่คุณเห็น language คุณลักษณะต่างๆ เบราว์เซอร์จะละเว้นอย่างเลือกสรรและไม่แม้แต่จะอธิบายด้วยซ้ำ

ด้วยเหตุผลด้านความเข้ากันได้ Chrome บนเดสก์ท็อปจึงยังคง "ดูแลมันชั่วคราว" แต่ Chrome บนมือถือ Android ถือเป็น "แนวหน้า" และเปิดใช้กลยุทธ์การทำความสะอาดนี้ทันที

ส่งผลให้คอมพิวเตอร์ทำงานได้ปกติ แต่โทรศัพท์มือถือกลับทำงานผิดปกติ

เหตุใด Android จึงดำเนินการก่อน?

บางคนอาจถามว่า ทำไม Android Chrome ถึงเปิดตัวก่อน?

มันง่ายมากเพราะว่าความเร็วในการอัพเกรดเทอร์มินัลมือถือนั้นเร็วกว่า และ Google ยังส่งข้อมูลได้เร็วพอๆ กับการส่งอั่งเปาเลยทีเดียว

เมื่อ วันที่ 31 ตุลาคม 2566แอป Chrome 119 สำหรับ Android ได้เปิดตัวอย่างเป็นทางการผ่าน Google Play แล้ว

แม้ว่าเวอร์ชันเดสก์ท็อปจะใช้เคอร์เนล Chromium ด้วยก็ตาม แต่ก็เป็นธรรมเนียมที่จะต้อง "คอยช่วยเหลือ" เพื่อหลีกเลี่ยงการระเบิดระบบภายในองค์กรจำนวนมากอย่างกะทันหัน

ดังนั้นหากคุณยังคงใช้ประโยคว่า "language=javascript" บนโทรศัพท์ Android มันเทียบเท่ากับการเขียนโค้ดโปร่งใส ซึ่งเบราว์เซอร์จะละเว้นโดยตรง

วิธีแก้ไข: ทำได้ภายในสามวินาที

โชคดีที่วิธีแก้ไขปัญหานี้ง่ายมาก เพียงแค่แทนที่บรรทัดนี้:

<script>

หรือจะเป็นทางการกว่านั้นอีกเล็กน้อย:

<script type="text/javascript">

ใช้เวลาเพียงไม่กี่วินาทีในการแก้ไข และ Android Chrome จะดำเนินการทันที

อย่าลืม รีเฟรชแคชหลังจากทำการเปลี่ยนแปลงเสร็จมิเช่นนั้นเบราว์เซอร์อาจยังคงอ่านไฟล์เก่าอยู่ วิธีการนั้นง่ายมาก:

  • คอมพิวเตอร์: Ctrl + F5
  • โทรศัพท์: การตั้งค่า → ความเป็นส่วนตัว → ล้างแคช

เมื่อรีเฟรชแล้ว รหัสจะฟื้นคืนมาภายในไม่กี่วินาที และหน้าจะเริ่มทำงานอีกครั้ง

จริงๆแล้วนี่คือการ “ชำระบัญชี”

ท้ายที่สุดแล้ว ปัญหาไม่ได้อยู่ที่ JavaScript เอง แต่เป็นปัญหาที่เกิดจากการแก้ไขโค้ดฝั่ง front-end เก่าๆ ต่างหาก

สิ่งที่ผู้ผลิตเบราว์เซอร์จำเป็นต้องทำนั้นชัดเจนมาก นั่นคือ ค่อยๆ ทำความสะอาดไวยากรณ์ที่ล้าสมัยและบังคับให้นักพัฒนาทำการอัปเดต

มันก็เหมือนกับทางหลวง: ก่อนหน้านี้สามล้อและรถแทรกเตอร์ได้รับอนุญาตให้วิ่งเคียงข้างกัน แต่ในตอนนี้ด้วยเหตุผลด้านความปลอดภัย พวกมันจึงต้องขับออกไป language="javascript" รถแทรกเตอร์คันนั้นไม่ควรอยู่เลนเลนด่วน

นักพัฒนาควรใส่ใจเรื่องใดบ้าง?

เหตุการณ์นี้ถือเป็นการเตือนใจที่สมจริงมากสำหรับเรา:

  1. รูปแบบการเขียนโค้ดมีความสำคัญมากโค้ดที่คุณคิดว่า "แค่ต้องทำงานได้" อาจใช้งานไม่ได้ในเวอร์ชันต่อๆ ไป

  2. สภาพแวดล้อมการทดสอบต้องพัฒนาให้ทันกับความเปลี่ยนแปลงอย่าแค่คลิกไปมาใน Chrome บนคอมพิวเตอร์แล้วปล่อยใช้งาน คุณต้องทดสอบบนอุปกรณ์มือถือและเบราว์เซอร์เวอร์ชันต่างๆ ด้วย

  3. ให้ความสนใจกับบันทึกการอัปเดตของเบราว์เซอร์การอัปเดต Chromium มักมาพร้อมกับข้อความ "การเลิกใช้งานและการลบ" จำนวนมาก ข้อความเหล่านี้ไม่ได้มีไว้แค่โชว์ แต่สามารถส่งผลเสียต่อธุรกิจของคุณได้จริง ๆ

บทสรุป: เบื้องหลังบรรทัดโค้ดคือวิวัฒนาการทางเทคโนโลยี

หลายๆ คนบ่นว่า Google นั้น "ไร้จริยธรรม" แต่เมื่อมองในมุมที่สูงขึ้น จริงๆ แล้วนี่คือกระบวนการที่หลีกเลี่ยงไม่ได้ซึ่งผลักดันระบบนิเวศเว็บทั้งหมดให้ก้าวไปข้างหน้า

การกำจัดคุณลักษณะเก่าๆ และการบังคับให้นักพัฒนาปฏิบัติตามมาตรฐานถือเป็นการวนซ้ำของอารยธรรมทางเทคโนโลยี

หากเรายังคงเข้ากันได้กับไวยากรณ์ที่ล้าสมัยทั้งหมด ไม่ช้าก็เร็ว ส่วนหน้าก็จะกลายเป็นหม้อที่ไม่สมบูรณ์และทรุดโทรม

ดังนั้นเมื่อเราซ่อมแซมหลุมเล็กๆ นี้ เราก็ได้มีส่วนร่วมใน "การเคลื่อนไหวทำความสะอาดของอารยธรรมแห่งเทคโนโลยี"

ในอีกไม่กี่ปีข้างหน้า ข้อผิดพลาดที่คล้ายคลึงกันนี้จะยิ่งเพิ่มมากขึ้น และทางออกเดียวคือต้องปรับตัวให้ทันยุคสมัยและปฏิบัติตามกฎระเบียบ

สรุปสุดท้าย

  • คอมพิวเตอร์สามารถรันได้ แต่ Android ทำไม่ได้ เพราะว่า <script language="javascript"> ไม่สนับสนุนอีกต่อไป
  • จาก โครเมียม 119 Android Chrome เป็นผู้นำในการข้าม language คุณลักษณะ <script> ชิ้น.
  • วิธีแก้ปัญหาคือ: ใช้ <script> 或 <script type="text/javascript">.
  • หลังจากแก้ไขแล้ว ให้รีเฟรชแคช และปัญหาจะถูกคืนค่า
  • นักพัฒนาควรใส่ใจกับการอัปเดตเบราว์เซอร์อยู่เสมอ และพัฒนาให้มีนิสัยการเขียนโค้ดในลักษณะมาตรฐาน

ดังนั้น ครั้งต่อไปที่คุณพบข้อบกพร่องแปลกๆ ที่คอมพิวเตอร์ทำงานได้ดีแต่โทรศัพท์ใช้งานไม่ได้ คุณอาจลองคิดดูดังนี้: มี "สิ่งที่เหลืออยู่จากศตวรรษที่แล้ว" ซ่อนอยู่ในโค้ดของคุณหรือไม่

หวังว่า บทความ "ทำไมโค้ด JS ถึงทำงานล้มเหลวใน Android Chrome? สาเหตุที่ไม่ทำงานและวิธีแก้ไขด้วยการคลิกเพียงครั้งเดียว!" ที่แชร์บนบล็อกของ Chen Weiliang ( https://www.chenweiliang.com/ ) จะเป็นประโยชน์กับคุณ

โปรดแชร์ลิงก์บทความนี้ได้ตามสบาย: https://www.chenweiliang.com/cwl-33236.html

หากต้องการปลดล็อคเคล็ดลับที่ซ่อนอยู่เพิ่มเติม ยินดีต้อนรับเข้าร่วมช่อง Telegram ของเรา!

แชร์และกดไลค์ถ้าคุณชอบ! การแชร์และการถูกใจของคุณคือแรงบันดาลใจอย่างต่อเนื่องของเรา!

 

发表评论

您的邮箱地址不会被公ปริญญา。必填项已用*标注

เลื่อนไปที่ด้านบน