การหน่วงเวลาการแตะ 300 มิลลิวินาที หายไป

ตลอดหลายปีที่ผ่านมา เบราว์เซอร์ในอุปกรณ์เคลื่อนที่มีการหน่วงเวลา 300-350 มิลลิวินาทีระหว่าง touchend ถึง click ในระหว่างที่รอเพื่อดูว่าการแตะสองครั้งนั้นจะเป็นการแตะสองครั้งหรือไม่ เนื่องจากการแตะสองครั้งเป็นท่าทางสัมผัสเพื่อซูมข้อความ

นับตั้งแต่มี Chrome สำหรับ Android รุ่นแรก เราก็ได้นำการหน่วงเวลานี้ออกหากมีการปิดใช้การซูมแบบบีบด้วย อย่างไรก็ตาม การบีบซูมเป็นฟีเจอร์การช่วยเหลือพิเศษที่สำคัญ ใน Chrome 32 (เมื่อปี 2014) ความล่าช้านี้จะหายไปสำหรับเว็บไซต์ที่เพิ่มประสิทธิภาพสำหรับอุปกรณ์เคลื่อนที่ โดยไม่ต้องนำการซูมแบบบีบออก หลังจากนั้นไม่นาน Firefox และ IE/Edge ก็พบปัญหาเดียวกันนี้ และในเดือนมีนาคม 2016 ก็พบการแก้ไขที่คล้ายกันใน iOS 9.3

ประสิทธิภาพแตกต่างกันอย่างมาก

การมี UI ที่ตอบสนองได้ทันทีหมายความว่าผู้ใช้จะกดปุ่มแต่ละปุ่มได้อย่างรวดเร็วด้วยความมั่นใจ แทนที่จะหยุดชั่วคราวและรอคำตอบ ดูข้อมูลเพิ่มเติมเกี่ยวกับผลกระทบของเวลารีแอ็กชันของมนุษย์และประสิทธิภาพบนเว็บได้ในข้อมูลเบื้องต้นเกี่ยวกับ RAIL

หากต้องการนำการหน่วงเวลาการแตะ 300-350 มิลลิวินาทีออก สิ่งที่คุณต้องมีคือใน <head> ของหน้าเว็บ

<meta name="viewport" content="width=device-width">

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

หากทำการเปลี่ยนแปลงนี้ไม่ได้ด้วยเหตุผลบางประการ คุณสามารถใช้ touch-action: manipulation เพื่อให้มีผลเดียวกันทั้งในหน้าเว็บหรือในองค์ประกอบบางรายการ ดังนี้

html {
    touch-action: manipulation;
}

เทคนิคนี้ไม่รองรับใน Safari ระบบจึงแนะนำให้ใช้แท็กวิวพอร์ตมากกว่า

การสูญเสียการแตะสองครั้งเพื่อซูมเป็นข้อกังวลเกี่ยวกับการช่วยเหลือพิเศษใช่ไหม

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

แล้วเบราว์เซอร์รุ่นเก่าล่ะ

FastClick by FT Labs ใช้เหตุการณ์การแตะเพื่อกระตุ้นให้เกิดการคลิกเร็วขึ้นและนำท่าทางสัมผัสการแตะสองครั้งออก โดยจะดูจำนวนนิ้วที่ย้ายระหว่าง touchstart ถึง touchend เพื่อแยกความแตกต่างระหว่างการเลื่อนและแตะ

การเพิ่ม Listener touchstart ลงในทุกอย่างล้วนส่งผลต่อประสิทธิภาพ เนื่องจากการโต้ตอบระดับล่าง เช่น การเลื่อนจะล่าช้า เนื่องจากการเรียก Listener เพื่อดูว่า event.preventDefault() วินาทีหรือไม่ โชคดีที่ FastClick จะหลีกเลี่ยงการตั้งค่า Listener ในกรณีที่เบราว์เซอร์ลบการหน่วงเวลา 300 มิลลิวินาทีออกไปแล้ว คุณจึงได้รับประโยชน์สูงสุดจากทั้งสองที่!