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

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

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

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

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

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

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

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

<script language="javascript">

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

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

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

ปรากฏว่าดังนี้:คอมพิวเตอร์ทำงานได้ดี แต่โทรศัพท์มือถือใช้งานไม่ได้ปัญหา.

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

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

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

2023 ตุลาคม 10Chrome 119 เวอร์ชัน Android ได้รับการผลักดันผ่าน Google Play อย่างเต็มรูปแบบแล้ว

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

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

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

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

<script>

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

<script type="text/javascript">

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

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

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

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

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

เมื่อวิเคราะห์ขั้นสุดท้าย ปัญหาในครั้งนี้ไม่ใช่ปัญหาของ JS เอง แต่เป็นยุคของโค้ดแบบ Front-end ดั้งเดิม.

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

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

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

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

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

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

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

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

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

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

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

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

ในอีกไม่กี่ปีข้างหน้า จะมีอุปสรรคที่คล้ายกันเกิดขึ้นมากขึ้นเรื่อยๆ และวิธีแก้ไขเดียวคือก้าวทันยุคสมัยและยึดถือมาตรฐาน.

สรุปสุดท้าย

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

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

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

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

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

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

 

发表评论

ที่อยู่อีเมลของคุณจะไม่ถูกเผยแพร่ 必填项已用 * 标注

ไดเรกทอรีบทความ
เลื่อนไปที่ด้านบน