कई सालों तक, मोबाइल ब्राउज़र touchend
और click
के बीच 300 से 350 मिलीसेकंड की देरी करते थे. ऐसा इसलिए किया जाता था, ताकि यह पता लगाया जा सके कि यह डबल-टैप है या नहीं. ऐसा इसलिए किया जाता था, क्योंकि डबल-टैप, टेक्स्ट को ज़ूम करने के लिए इस्तेमाल किया जाता था.
Android के लिए Chrome के पहले रिलीज़ होने के बाद से, पिंच-ज़ूम की सुविधा बंद होने पर यह देरी हटा दी गई थी. हालांकि, पिंच ज़ूम करना, सुलभता से जुड़ी एक अहम सुविधा है. साल 2014 में Chrome 32 के रिलीज़ होने के बाद, मोबाइल के लिए ऑप्टिमाइज़ की गई साइटों पर, पिंच-ज़ूम करने की सुविधा को हटाए बिना, इंतज़ार का समय खत्म हो गया है! इसके कुछ समय बाद, Firefox और IE/Edge ने भी ऐसा ही किया. मार्च 2016 में, iOS 9.3 में भी इसी तरह की समस्या को ठीक किया गया.
परफ़ॉर्मेंस में काफ़ी अंतर है!
तुरंत जवाब देने वाले यूज़र इंटरफ़ेस का मतलब है कि उपयोगकर्ता जवाब मिलने का इंतज़ार करने के बजाय, भरोसे के साथ हर बटन को तुरंत दबा सकता है. RAIL के बारे में जानकारी में, लोगों के रिएक्शन टाइम और वेब की परफ़ॉर्मेंस के असर के बारे में ज़्यादा जानें.
टैप में लगने वाले 300 से 350 मिलीसेकंड के इंतज़ार को हटाने के लिए, आपको अपने पेज के <head>
में सिर्फ़ ये चीज़ें जोड़नी होंगी:
<meta name="viewport" content="width=device-width">
इससे व्यूपोर्ट की चौड़ाई, डिवाइस की चौड़ाई के बराबर सेट हो जाती है. आम तौर पर, मोबाइल के लिए ऑप्टिमाइज़ की गई साइटों के लिए, यह सबसे सही तरीका है. इस टैग की मदद से, ब्राउज़र यह मान लेते हैं कि आपने टेक्स्ट को मोबाइल पर पढ़ने लायक बनाया है. साथ ही, तेज़ी से क्लिक करने के लिए, ज़ूम करने के लिए दो बार टैप करने की सुविधा हटा दी जाती है.
अगर किसी वजह से यह बदलाव नहीं किया जा सकता, तो पेज पर या किसी खास एलिमेंट पर एक जैसा असर पाने के लिए, touch-action: manipulation
का इस्तेमाल किया जा सकता है:
html {
touch-action: manipulation;
}
यह तकनीक Safari में काम नहीं करती. इसलिए, व्यूपोर्ट टैग का इस्तेमाल करना ज़्यादा बेहतर होता है.
क्या ज़ूम करने के लिए दो बार टैप करने की सुविधा बंद होने से, सुलभता से जुड़ी कोई समस्या आ रही है?
नहीं. पिंच ज़ूम करने की सुविधा अब भी काम करती रहेगी. साथ ही, ओएस की सुविधाएं उन उपयोगकर्ताओं के लिए उपलब्ध हैं जिन्हें यह जेस्चर मुश्किल लगता है. Android डिवाइस पर, ज़ूम करने के जेस्चर की मदद से ऐसा किया जा सकता है. इस तरह के टूल, ब्राउज़र के बाहर भी काम करते हैं.
पुराने ब्राउज़र के लिए क्या करना होगा?
FT Labs का FastClick, टच इवेंट का इस्तेमाल करके क्लिक को तेज़ी से ट्रिगर करता है. साथ ही, डबल-टैप जेस्चर को हटा देता है. यह स्क्रोल और टैप के बीच अंतर करने के लिए, touchstart
और touchend
के बीच आपके फ़िंगर की गति को देखता है.
हर चीज़ में touchstart
listener जोड़ने से परफ़ॉर्मेंस पर असर पड़ता है. ऐसा इसलिए होता है, क्योंकि स्क्रोल करने जैसे लोअर-लेवल इंटरैक्शन में देरी होती है. ऐसा इसलिए होता है, क्योंकि listener को यह देखने के लिए कॉल किया जाता है कि यह event.preventDefault()
है या नहीं. अच्छी बात यह है कि FastClick उन मामलों में, लिसनर सेट नहीं करेगा जहां ब्राउज़र पहले से ही 300 मिलीसेकंड की देरी को हटा देता है. इससे आपको दोनों का फ़ायदा मिलता है!