ਕੀ ਫਲਟਰ ਲਈ ਜਾਵਾ ਸਕ੍ਰਿਪਟ ਵਾਂਗ ਹੀ ਕੀਬੋਰਡ ਇਵੈਂਟਸ ਨੂੰ ਰਿਕਾਰਡ ਕਰਨਾ ਅਤੇ ਰੋਕਣਾ ਸੰਭਵ ਹੈ?

Flutter

ਫਲਟਰ ਅਤੇ ਜਾਵਾ ਸਕ੍ਰਿਪਟ ਵਿੱਚ ਗਲੋਬਲ ਸ਼ਾਰਟਕੱਟ ਪ੍ਰਬੰਧਨ ਨੂੰ ਸਮਝਣਾ

ਕੀਬੋਰਡ ਸ਼ਾਰਟਕੱਟ ਕਮਾਂਡਾਂ ਤੱਕ ਤੁਰੰਤ ਪਹੁੰਚ ਪ੍ਰਦਾਨ ਕਰਕੇ ਐਪਲੀਕੇਸ਼ਨਾਂ ਦੀ ਉਪਯੋਗਤਾ ਨੂੰ ਬਿਹਤਰ ਬਣਾਉਣ ਵਿੱਚ ਮਹੱਤਵਪੂਰਣ ਭੂਮਿਕਾ ਨਿਭਾਉਂਦੇ ਹਨ। ਹਾਲਾਂਕਿ, ਉਹਨਾਂ ਦਾ ਲਾਗੂਕਰਨ ਸਾਰੇ ਪਲੇਟਫਾਰਮਾਂ ਵਿੱਚ ਵੱਖੋ-ਵੱਖ ਹੁੰਦਾ ਹੈ, ਜਾਵਾ ਸਕ੍ਰਿਪਟ ਵਰਗੇ ਫਰੇਮਵਰਕ ਇਵੈਂਟ ਹੈਂਡਲਿੰਗ ਲਈ "ਕੈਪਚਰ" ​​ਅਤੇ "ਬਬਲ" ਵਰਗੇ ਵੱਖਰੇ ਪੜਾਅ ਪੇਸ਼ ਕਰਦੇ ਹਨ। ਇਹ ਪੜਾਅ ਡਿਵੈਲਪਰਾਂ ਨੂੰ ਗਲੋਬਲ ਸ਼ਾਰਟਕੱਟਾਂ ਦੀ ਤਰਜੀਹ ਨੂੰ ਪ੍ਰਭਾਵਸ਼ਾਲੀ ਢੰਗ ਨਾਲ ਪ੍ਰਬੰਧਿਤ ਕਰਨ ਦੀ ਇਜਾਜ਼ਤ ਦਿੰਦੇ ਹਨ।

JavaScript ਵਿੱਚ, "ਕੈਪਚਰਿੰਗ" ਪੜਾਅ ਇਹ ਯਕੀਨੀ ਬਣਾਉਂਦਾ ਹੈ ਕਿ ਉੱਚ-ਪ੍ਰਾਥਮਿਕਤਾ ਵਾਲੇ ਸ਼ਾਰਟਕੱਟਾਂ ਨੂੰ ਪਹਿਲਾਂ ਸੰਭਾਲਿਆ ਜਾਂਦਾ ਹੈ, ਜਦੋਂ ਕਿ "ਬਬਲਿੰਗ" ਪੜਾਅ ਇਹ ਯਕੀਨੀ ਬਣਾਉਂਦਾ ਹੈ ਕਿ ਸਿਰਫ਼ ਅਣ-ਹੈਂਡਲਡ ਇਵੈਂਟਸ ਗਲੋਬਲ ਸ਼ਾਰਟਕੱਟ ਤੱਕ ਪਹੁੰਚਦੇ ਹਨ। ਇਹ ਦੋਹਰਾ-ਪੜਾਅ ਵਾਲਾ ਇਵੈਂਟ ਸਿਸਟਮ ਲਚਕਤਾ ਦੀ ਪੇਸ਼ਕਸ਼ ਕਰਦਾ ਹੈ, ਜਿਸ ਨਾਲ ਸੰਦਰਭ ਦੇ ਅਧਾਰ 'ਤੇ ਦੂਜਿਆਂ ਨੂੰ ਮੁਲਤਵੀ ਕਰਦੇ ਹੋਏ ਕੁਝ ਇਨਪੁਟਸ ਨੂੰ ਤਰਜੀਹ ਦਿੱਤੀ ਜਾਂਦੀ ਹੈ।

ਫਲਟਰ ਡਿਵੈਲਪਰਾਂ ਲਈ, ਸਮਾਨ ਨਿਯੰਤਰਣ ਨੂੰ ਪ੍ਰਾਪਤ ਕਰਨਾ ਚੁਣੌਤੀਪੂਰਨ ਹੋ ਸਕਦਾ ਹੈ ਕਿਉਂਕਿ ਫਲਟਰ ਨੇਟਿਵ ਤੌਰ 'ਤੇ JavaScript ਵਰਗੇ "ਕੈਪਚਰਿੰਗ" ਜਾਂ "ਬਬਲਿੰਗ" ਪੜਾਵਾਂ ਦਾ ਸਮਰਥਨ ਨਹੀਂ ਕਰਦਾ ਹੈ। ਇਸ ਬਾਰੇ ਸਵਾਲ ਉੱਠਦੇ ਹਨ ਕਿ ਕੀ ਫਲਟਰ ਦੇ ਵਿਜੇਟ ਇਹਨਾਂ ਵਿਵਹਾਰਾਂ ਦੀ ਨਕਲ ਕਰ ਸਕਦਾ ਹੈ ਅਤੇ ਵਿਜੇਟ ਟ੍ਰੀ ਦੇ ਅੰਦਰ ਉੱਚ-ਪ੍ਰਾਥਮਿਕਤਾ ਅਤੇ ਘੱਟ-ਪ੍ਰਾਥਮਿਕਤਾ ਵਾਲੀਆਂ ਗਲੋਬਲ ਸ਼ਾਰਟਕੱਟ ਕੁੰਜੀਆਂ ਵਿੱਚ ਫਰਕ ਕਿਵੇਂ ਕਰਨਾ ਹੈ।

ਇਹ ਲੇਖ ਖੋਜ ਕਰਦਾ ਹੈ ਕਿ ਕੀ ਅਤੇ ਕਿਵੇਂ ਫਲਟਰ ਵਿਜੇਟਸ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਇਹਨਾਂ ਇਵੈਂਟ ਪੜਾਵਾਂ ਦੀ ਨਕਲ ਕਰ ਸਕਦਾ ਹੈ . ਇਹ ਘੱਟ-ਪ੍ਰਾਥਮਿਕਤਾ ਵਾਲੇ ਸ਼ਾਰਟਕੱਟਾਂ ਨੂੰ ਲਾਗੂ ਕਰਨ ਲਈ ਸੰਭਾਵੀ ਪਹੁੰਚਾਂ 'ਤੇ ਵੀ ਚਰਚਾ ਕਰਦਾ ਹੈ, ਇਹ ਸੁਨਿਸ਼ਚਿਤ ਕਰਦੇ ਹੋਏ ਕਿ ਕੀਬੋਰਡ ਇਵੈਂਟਸ ਕੇਵਲ ਉਦੋਂ ਹੀ ਟ੍ਰਿਗਰ ਹੁੰਦੇ ਹਨ ਜਦੋਂ ਕੋਈ ਹੋਰ ਵਿਜੇਟ ਉਹਨਾਂ ਦੀ ਵਰਤੋਂ ਨਹੀਂ ਕਰਦਾ। ਅੰਤ ਤੱਕ, ਤੁਸੀਂ ਸਮਝ ਜਾਓਗੇ ਕਿ ਫਲਟਰ ਵਿੱਚ ਕੀਬੋਰਡ ਇਵੈਂਟਸ ਨੂੰ ਹੋਰ ਪ੍ਰਭਾਵਸ਼ਾਲੀ ਢੰਗ ਨਾਲ ਕਿਵੇਂ ਪ੍ਰਬੰਧਿਤ ਕਰਨਾ ਹੈ।

ਹੁਕਮ ਵਰਤੋਂ ਦੀ ਉਦਾਹਰਨ
Focus ਇਹ ਵਿਜੇਟ ਪੂਰੇ ਵਿਜੇਟ ਟ੍ਰੀ ਵਿੱਚ ਕੀਬੋਰਡ ਇਵੈਂਟਾਂ ਨੂੰ ਕੈਪਚਰ ਕਰਦਾ ਹੈ। ਰੂਟ ਵਿਜੇਟ ਨੂੰ ਫੋਕਸ ਵਿੱਚ ਲਪੇਟ ਕੇ, ਤੁਸੀਂ ਦੂਜੇ ਵਿਜੇਟਸ ਨੂੰ ਸੰਭਾਲਣ ਤੋਂ ਪਹਿਲਾਂ ਗਲੋਬਲ ਕੁੰਜੀ ਘਟਨਾਵਾਂ ਨੂੰ ਰੋਕ ਸਕਦੇ ਹੋ।
LogicalKeyboardKey.escape ਕੀਬੋਰਡ 'ਤੇ Escape ਕੁੰਜੀ ਨੂੰ ਦਰਸਾਉਂਦਾ ਹੈ। ਇਹ ਪਤਾ ਲਗਾਉਣ ਲਈ ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ ਜਦੋਂ ਉਪਭੋਗਤਾ ਦਬਾਉਦਾ ਹੈ ਕੁੰਜੀ, ਫਲਟਰ ਵਿੱਚ ਉੱਚ-ਪ੍ਰਾਥਮਿਕਤਾ ਵਾਲੇ ਸ਼ਾਰਟਕੱਟਾਂ ਨੂੰ ਸਮਰੱਥ ਬਣਾਉਣਾ।
KeyEventResult.handled ਇਹ ਮੁੱਲ ਘਟਨਾ ਦੇ ਹੋਰ ਪ੍ਰਸਾਰ ਨੂੰ ਰੋਕਦਾ ਹੈ, ਇਹ ਦਰਸਾਉਂਦਾ ਹੈ ਕਿ ਮੌਜੂਦਾ ਵਿਜੇਟ ਨੇ ਕੀਬੋਰਡ ਇਨਪੁਟ ਨੂੰ ਸੰਭਾਲਿਆ ਹੈ, ਜਾਵਾ ਸਕ੍ਰਿਪਟ ਵਿੱਚ ਇਵੈਂਟਾਂ ਨੂੰ ਕੈਪਚਰ ਕਰਨ ਦੇ ਸਮਾਨ ਹੈ।
FocusScope ਇੱਕ ਵਿਜੇਟ ਜੋ ਵਿਜੇਟਸ ਦੇ ਇੱਕ ਸਮੂਹ ਵਿੱਚ ਫੋਕਸ ਦਾ ਪ੍ਰਬੰਧਨ ਕਰਦਾ ਹੈ। ਇਹ ਵਿਜੇਟ ਸਬਟ੍ਰੀ ਦੇ ਅੰਦਰ ਇਵੈਂਟਾਂ ਦਾ ਪ੍ਰਚਾਰ ਕਿੱਥੇ ਕੀਤਾ ਜਾਂਦਾ ਹੈ ਇਸ 'ਤੇ ਵਧੇਰੇ ਸਟੀਕ ਨਿਯੰਤਰਣ ਨੂੰ ਸਮਰੱਥ ਬਣਾਉਂਦਾ ਹੈ।
RawKeyDownEvent ਇੱਕ ਵਿਸ਼ੇਸ਼ ਇਵੈਂਟ ਕਲਾਸ ਜੋ ਹੇਠਲੇ-ਪੱਧਰ ਦੀਆਂ ਮੁੱਖ ਪ੍ਰੈਸ ਇਵੈਂਟਾਂ ਨੂੰ ਕੈਪਚਰ ਕਰਨ ਲਈ ਵਰਤੀ ਜਾਂਦੀ ਹੈ। ਇਹ ਯੂਨਿਟ ਟੈਸਟਾਂ ਨੂੰ ਲਿਖਣ ਲਈ ਜ਼ਰੂਰੀ ਹੈ ਜੋ ਕੀਬੋਰਡ ਇਨਪੁਟ ਦੀ ਨਕਲ ਕਰਦੇ ਹਨ।
LogicalKeyboardKey.enter ਕੀਬੋਰਡ ਇਨਪੁਟ ਇਵੈਂਟਸ ਵਿੱਚ ਐਂਟਰ ਕੁੰਜੀ ਦੀ ਪਛਾਣ ਕਰਨ ਲਈ ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ। ਘੱਟ ਤਰਜੀਹ ਵਾਲੇ ਸ਼ਾਰਟਕੱਟਾਂ ਵਿੱਚ, ਇਹ ਜਾਂਚ ਕਰਦਾ ਹੈ ਕਿ ਕੀ ਕੁੰਜੀ ਕਿਸੇ ਵੀ ਗਲੋਬਲ ਐਕਸ਼ਨ ਨੂੰ ਟਰਿੱਗਰ ਕਰਦੀ ਹੈ।
KeyEventResult.ignored ਇਹ ਨਤੀਜਾ JavaScript ਵਿੱਚ ਦੇਖੇ ਗਏ "ਬਬਲਿੰਗ" ਪੜਾਅ ਦੀ ਨਕਲ ਕਰਦੇ ਹੋਏ, ਇਵੈਂਟ ਨੂੰ ਹੋਰ ਵਿਜੇਟਸ ਵਿੱਚ ਪ੍ਰਚਾਰ ਕਰਨਾ ਜਾਰੀ ਰੱਖਣ ਦੀ ਇਜਾਜ਼ਤ ਦਿੰਦਾ ਹੈ।
sendKeyEvent flutter_test ਪੈਕੇਜ ਤੋਂ ਇੱਕ ਫੰਕਸ਼ਨ, ਯੂਨਿਟ ਟੈਸਟਾਂ ਵਿੱਚ ਮੁੱਖ ਇਵੈਂਟਾਂ ਦੀ ਨਕਲ ਕਰਨ ਲਈ ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ। ਇਹ ਪ੍ਰਮਾਣਿਤ ਕਰਨ ਵਿੱਚ ਮਦਦ ਕਰਦਾ ਹੈ ਕਿ ਵੱਖ-ਵੱਖ ਵਿਜੇਟਸ ਮੁੱਖ ਇਨਪੁਟਸ ਨੂੰ ਕਿਵੇਂ ਪ੍ਰਤੀਕਿਰਿਆ ਕਰਦੇ ਹਨ।
autofocus ਇੱਕ ਵਿਸ਼ੇਸ਼ਤਾ ਜੋ ਫੋਕਸ ਜਾਂ ਫੋਕਸਸਕੋਪ ਵਿਜੇਟ ਨੂੰ ਯਕੀਨੀ ਬਣਾਉਂਦੀ ਹੈ, ਜਦੋਂ ਵਿਜੇਟ ਟ੍ਰੀ ਬਣਾਇਆ ਜਾਂਦਾ ਹੈ ਤਾਂ ਤੁਰੰਤ ਫੋਕਸ ਪ੍ਰਾਪਤ ਕਰਦਾ ਹੈ। ਇਹ ਗਲੋਬਲ ਸ਼ਾਰਟਕੱਟ ਪ੍ਰਬੰਧਨ ਲਈ ਮਹੱਤਵਪੂਰਨ ਹੈ।

ਫੋਕਸ ਵਿਜੇਟਸ ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹੋਏ ਫਲਟਰ ਵਿੱਚ ਕੀਬੋਰਡ ਇਵੈਂਟ ਪੜਾਅ ਲਾਗੂ ਕਰਨਾ

ਪਹਿਲੇ ਹੱਲ ਵਿੱਚ, ਅਸੀਂ ਫਲਟਰ ਦੀ ਵਰਤੋਂ ਕੀਤੀ ਇਵੈਂਟ ਹੈਂਡਲਿੰਗ ਦੇ "ਕੈਪਚਰਿੰਗ" ਪੜਾਅ ਦੀ ਨਕਲ ਕਰਨ ਲਈ ਵਿਜੇਟ, ਜੋ ਉੱਚ-ਪ੍ਰਾਥਮਿਕਤਾ ਵਾਲੇ ਗਲੋਬਲ ਸ਼ਾਰਟਕੱਟਾਂ ਨੂੰ ਲਾਗੂ ਕਰਨ ਲਈ ਮਹੱਤਵਪੂਰਨ ਹੈ। ਪੂਰੇ ਵਿਜੇਟ ਟ੍ਰੀ ਨੂੰ ਫੋਕਸ ਵਿਜੇਟ ਨਾਲ ਲਪੇਟ ਕੇ ਅਤੇ ਆਟੋਫੋਕਸ ਨੂੰ ਸਮਰੱਥ ਬਣਾ ਕੇ, ਅਸੀਂ ਇਹ ਯਕੀਨੀ ਬਣਾਉਂਦੇ ਹਾਂ ਕਿ ਕੀ-ਬੋਰਡ ਇਵੈਂਟਾਂ ਨੂੰ ਰੂਟ 'ਤੇ ਕੈਪਚਰ ਕੀਤਾ ਗਿਆ ਹੈ, ਇਸ ਤੋਂ ਪਹਿਲਾਂ ਕਿ ਕੋਈ ਵੀ ਬਾਲ ਵਿਜੇਟ ਉਹਨਾਂ ਨੂੰ ਸੰਭਾਲ ਸਕੇ। ਇਹ ਪਹੁੰਚ ਕੁੰਜੀਆਂ ਨੂੰ ਰੋਕਣ ਲਈ ਪ੍ਰਭਾਵਸ਼ਾਲੀ ਹੈ , ਜੋ ਘਟਨਾ ਨੂੰ ਤੁਰੰਤ ਸੰਭਾਲਦਾ ਹੈ ਅਤੇ ਵਿਜੇਟ ਟ੍ਰੀ ਦੇ ਅੰਦਰ ਹੋਰ ਪ੍ਰਸਾਰ ਨੂੰ ਰੋਕਦਾ ਹੈ। ਇਸਦਾ ਮੁੱਖ ਨਤੀਜਾ ਜਾਵਾ ਸਕ੍ਰਿਪਟ ਦੇ ਕੈਪਚਰ ਪੜਾਅ ਦੇ ਸਮਾਨ ਇੱਕ ਗਲੋਬਲ ਕੀਬੋਰਡ ਲਿਸਨਰ ਨੂੰ ਪ੍ਰਾਪਤ ਕਰਨ ਦੀ ਯੋਗਤਾ ਹੈ।

ਦੂਜਾ ਹੱਲ ਰੁਜ਼ਗਾਰ ਦਿੰਦਾ ਹੈ ਜਾਵਾ ਸਕ੍ਰਿਪਟ ਵਿੱਚ "ਬਬਲਿੰਗ" ਪੜਾਅ ਦੀ ਨਕਲ ਕਰਦੇ ਹੋਏ, ਘੱਟ ਤਰਜੀਹੀ ਗਲੋਬਲ ਸ਼ਾਰਟਕੱਟਾਂ ਦਾ ਪ੍ਰਬੰਧਨ ਕਰਨ ਲਈ ਵਿਜੇਟ। ਇੱਥੇ ਫਰਕ ਇਹ ਹੈ ਕਿ ਫੋਕਸਸਕੋਪ ਇਵੈਂਟਸ ਨੂੰ ਵਿਜੇਟ ਟ੍ਰੀ ਦੇ ਹੇਠਾਂ ਪ੍ਰਸਾਰਿਤ ਕਰਨ ਦੀ ਇਜਾਜ਼ਤ ਦਿੰਦਾ ਹੈ, ਹਰੇਕ ਵਿਜੇਟ ਨੂੰ ਘਟਨਾ ਦਾ ਜਵਾਬ ਦੇਣ ਦਾ ਮੌਕਾ ਹੁੰਦਾ ਹੈ। ਜੇਕਰ ਕੋਈ ਵਿਜੇਟ ਇਵੈਂਟ ਦੀ ਵਰਤੋਂ ਨਹੀਂ ਕਰਦਾ ਹੈ, ਤਾਂ ਇਹ ਗਲੋਬਲ ਸ਼ਾਰਟਕੱਟ ਨੂੰ ਚਾਲੂ ਕਰਦੇ ਹੋਏ, ਫੋਕਸਸਕੋਪ ਤੱਕ ਬੈਕਅੱਪ ਕਰਦਾ ਹੈ। ਉਦਾਹਰਨ ਲਈ, ENTER ਕੁੰਜੀ ਨੂੰ ਦਬਾਉਣ ਨਾਲ ਸਿਰਫ ਸ਼ਾਰਟਕੱਟ ਚਲਦਾ ਹੈ ਜੇਕਰ ਕਿਸੇ ਹੋਰ ਵਿਜੇਟ ਨੇ ਕੁੰਜੀ ਘਟਨਾ ਦੀ ਵਰਤੋਂ ਨਹੀਂ ਕੀਤੀ ਹੈ। ਇਹ ਪਹੁੰਚ ਉਹਨਾਂ ਸਥਿਤੀਆਂ ਵਿੱਚ ਲਾਭਦਾਇਕ ਹੈ ਜਿੱਥੇ ਗਲੋਬਲ ਸ਼ਾਰਟਕੱਟ ਕੇਵਲ ਉਦੋਂ ਹੀ ਚਾਲੂ ਕੀਤੇ ਜਾਣੇ ਚਾਹੀਦੇ ਹਨ ਜਦੋਂ ਸਥਾਨਕ ਇਨਪੁਟਸ ਅਕਿਰਿਆਸ਼ੀਲ ਹੋਣ।

ਸਾਡਾ ਤੀਜਾ ਹੱਲ ਦੀ ਵਰਤੋਂ ਕਰਕੇ ਯੂਨਿਟ ਟੈਸਟਿੰਗ ਪੇਸ਼ ਕਰਦਾ ਹੈ ਉੱਚ-ਪ੍ਰਾਥਮਿਕਤਾ ਅਤੇ ਘੱਟ-ਪ੍ਰਾਥਮਿਕਤਾ ਵਾਲੇ ਕੀਬੋਰਡ ਇਵੈਂਟ ਹੈਂਡਲਿੰਗ ਦੋਵਾਂ ਨੂੰ ਪ੍ਰਮਾਣਿਤ ਕਰਨ ਲਈ ਪੈਕੇਜ। ਅਸੀਂ ਮੁੱਖ ਇਵੈਂਟਾਂ ਦੀ ਨਕਲ ਕਰਦੇ ਹਾਂ, ਜਿਵੇਂ ਕਿ ESC ਅਤੇ ENTER ਪ੍ਰੈਸ, ਇਹ ਯਕੀਨੀ ਬਣਾਉਣ ਲਈ ਕਿ ਸਹੀ ਵਿਜੇਟ ਉਹਨਾਂ ਨੂੰ ਉਮੀਦ ਅਨੁਸਾਰ ਹੈਂਡਲ ਕਰਦਾ ਹੈ। ਇਹ ਨਾ ਸਿਰਫ਼ ਕਾਰਜਸ਼ੀਲਤਾ ਦੀ ਪੁਸ਼ਟੀ ਕਰਦਾ ਹੈ ਸਗੋਂ ਇਹ ਵੀ ਯਕੀਨੀ ਬਣਾਉਂਦਾ ਹੈ ਕਿ ਵਿਜੇਟ ਲੜੀ ਵੱਖ-ਵੱਖ ਸਥਿਤੀਆਂ ਵਿੱਚ ਉਚਿਤ ਢੰਗ ਨਾਲ ਜਵਾਬ ਦਿੰਦੀ ਹੈ। ਵੱਖ-ਵੱਖ ਵਾਤਾਵਰਣਾਂ ਵਿੱਚ ਇਵੈਂਟ ਪ੍ਰਬੰਧਨ ਤਰਕ ਨੂੰ ਕਾਇਮ ਰੱਖਣ ਅਤੇ ਵਿਜੇਟ ਟ੍ਰੀ ਦੇ ਬਦਲਣ 'ਤੇ ਰਿਗਰੈਸ਼ਨ ਨੂੰ ਰੋਕਣ ਲਈ ਯੂਨਿਟ ਟੈਸਟ ਜ਼ਰੂਰੀ ਹਨ।

ਕੋਡ ਦੀਆਂ ਉਦਾਹਰਣਾਂ ਵੀ ਵਿਸ਼ੇਸ਼ ਕਮਾਂਡਾਂ ਦੀ ਵਰਤੋਂ ਕਰਦੀਆਂ ਹਨ ਜਿਵੇਂ ਕਿ ਮੁੱਖ ਇਨਪੁਟਸ ਦੀ ਨਕਲ ਕਰਨ ਲਈ ਅਤੇ ਘਟਨਾ ਦੇ ਪ੍ਰਵਾਹ ਦਾ ਪ੍ਰਬੰਧਨ ਕਰਨ ਲਈ. ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹੋਏ ਇਹ ਯਕੀਨੀ ਬਣਾਉਂਦਾ ਹੈ ਕਿ ਲੋੜ ਪੈਣ 'ਤੇ ਇਵੈਂਟ ਦਾ ਪ੍ਰਚਾਰ ਕਰਨਾ ਬੰਦ ਹੋ ਜਾਂਦਾ ਹੈ, ਜਿਵੇਂ ਕਿ JavaScript ਦੇ ਕੈਪਚਰ ਪੜਾਅ। ਦੂਜੇ ਹਥ੍ਥ ਤੇ, KeyEventResult.ignored ਇਵੈਂਟ ਨੂੰ ਪ੍ਰਸਾਰਿਤ ਕਰਨ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ, ਜੋ ਕਿ ਬਬਲਿੰਗ ਪੜਾਅ ਸੰਕਲਪ ਨਾਲ ਇਕਸਾਰ ਹੁੰਦਾ ਹੈ। ਇਹ ਵਿਧੀਆਂ ਡਿਵੈਲਪਰਾਂ ਨੂੰ ਫਲਟਰ ਐਪਲੀਕੇਸ਼ਨਾਂ ਦੇ ਅੰਦਰ ਉੱਚ-ਪ੍ਰਾਥਮਿਕਤਾ ਅਤੇ ਘੱਟ-ਪ੍ਰਾਥਮਿਕਤਾ ਵਾਲੇ ਸ਼ਾਰਟਕੱਟਾਂ ਵਿਚਕਾਰ ਫਰਕ ਕਰਨ ਲਈ ਲੋੜੀਂਦੀ ਲਚਕਤਾ ਦੀ ਪੇਸ਼ਕਸ਼ ਕਰਦੇ ਹੋਏ, ਕੀਬੋਰਡ ਇਨਪੁਟਸ ਨੂੰ ਸਹੀ ਢੰਗ ਨਾਲ ਸੰਭਾਲਣ ਦੇ ਯੋਗ ਬਣਾਉਂਦੀਆਂ ਹਨ।

ਫਲਟਰ ਵਿੱਚ ਕੀਬੋਰਡ ਇਵੈਂਟਸ ਲਈ ਕੈਪਚਰਿੰਗ ਅਤੇ ਬਬਲਿੰਗ ਪੜਾਅ ਦੀ ਨਕਲ ਕਰਨਾ

ਗਲੋਬਲ ਕੀਬੋਰਡ ਸ਼ਾਰਟਕੱਟ ਹੈਂਡਲਿੰਗ ਦੀ ਨਕਲ ਕਰਨ ਲਈ ਫਲਟਰ ਦੇ ਫੋਕਸ ਵਿਜੇਟ ਦੀ ਵਰਤੋਂ ਕਰਨਾ

// Solution 1: High-priority shortcut using Focus widget
import 'package:flutter/material.dart';
void main() {
  runApp(MyApp());
}
class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Focus(
        autofocus: true,
        onKey: (node, event) {
          if (event.isKeyPressed(LogicalKeyboardKey.escape)) {
            print('High-priority ESC pressed.');
            return KeyEventResult.handled;
          }
          return KeyEventResult.ignored;
        },
        child: HomeScreen(),
      ),
    );
  }
}
class HomeScreen extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(title: Text('Flutter Global Shortcut')),
      body: Center(child: Text('Press ESC for high-priority action')),
    );
  }
}

ਫੋਕਸਸਕੋਪ ਅਤੇ ਪ੍ਰਸਾਰ ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹੋਏ ਫਲਟਰ ਵਿੱਚ ਘੱਟ ਤਰਜੀਹ ਵਾਲੇ ਸ਼ਾਰਟਕੱਟਾਂ ਨੂੰ ਸੰਭਾਲਣਾ

ਪ੍ਰਸਾਰ ਅਤੇ ਮੁੱਖ ਇਵੈਂਟ ਹੈਂਡਲਿੰਗ ਨੂੰ ਨਿਯੰਤਰਿਤ ਕਰਨ ਲਈ ਫੋਕਸਸਕੋਪ ਦੀ ਵਰਤੋਂ ਕਰਨਾ

// Solution 2: Low-priority shortcut using FocusScope
import 'package:flutter/material.dart';
void main() {
  runApp(MyApp());
}
class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: FocusScope(
        autofocus: true,
        onKey: (node, event) {
          if (event.isKeyPressed(LogicalKeyboardKey.enter)) {
            print('Low-priority ENTER pressed.');
            return KeyEventResult.ignored; 
          }
          return KeyEventResult.ignored;
        },
        child: LowPriorityScreen(),
      ),
    );
  }
}
class LowPriorityScreen extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(title: Text('Low-priority Shortcut Example')),
      body: Center(child: Text('Press ENTER for low-priority action')),
    );
  }
}

ਯੂਨਿਟ ਟੈਸਟਾਂ ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹੋਏ ਵਿਜੇਟਸ ਦੇ ਪਾਰ ਇਵੈਂਟ ਹੈਂਡਲਿੰਗ ਦੀ ਜਾਂਚ ਕਰਨਾ

ਵਿਜੇਟਸ ਵਿੱਚ ਸਹੀ ਸ਼ਾਰਟਕੱਟ ਵਿਵਹਾਰ ਨੂੰ ਯਕੀਨੀ ਬਣਾਉਣ ਲਈ ਡਾਰਟ ਯੂਨਿਟ ਟੈਸਟ

// Solution 3: Unit tests for shortcut handling
import 'package:flutter_test/flutter_test.dart';
import 'package:flutter/material.dart';
import 'package:my_app/main.dart';
void main() {
  testWidgets('High-priority shortcut test', (WidgetTester tester) async {
    await tester.pumpWidget(MyApp());
    final escEvent = RawKeyDownEvent(
      data: RawKeyEventDataAndroid(keyCode: 111),
      logicalKey: LogicalKeyboardKey.escape,
    );
    await tester.sendKeyEvent(escEvent);
    expect(find.text('High-priority ESC pressed.'), findsOneWidget);
  });
  testWidgets('Low-priority shortcut test', (WidgetTester tester) async {
    await tester.pumpWidget(MyApp());
    final enterEvent = RawKeyDownEvent(
      data: RawKeyEventDataAndroid(keyCode: 66),
      logicalKey: LogicalKeyboardKey.enter,
    );
    await tester.sendKeyEvent(enterEvent);
    expect(find.text('Low-priority ENTER pressed.'), findsOneWidget);
  });
}

ਫਲਟਰ ਵਿੱਚ ਕੀਬੋਰਡ ਇਵੈਂਟ ਹੈਂਡਲਿੰਗ ਅਤੇ ਪ੍ਰਦਰਸ਼ਨ 'ਤੇ ਵਿਸਤਾਰ ਕਰਨਾ

ਵਰਤਣ ਤੋਂ ਪਰੇ ਅਤੇ , ਫਲਟਰ ਕੀਬੋਰਡ ਇਵੈਂਟ ਹੈਂਡਲਿੰਗ ਨੂੰ ਵਧਾਉਣ ਲਈ ਹੋਰ ਉਪਯੋਗੀ ਵਿਧੀ ਪ੍ਰਦਾਨ ਕਰਦਾ ਹੈ, ਜਿਵੇਂ ਕਿ ਅਤੇ ਕਾਰਵਾਈਆਂ. ਇਹ ਵਿਜੇਟਸ ਵਿਜੇਟ ਟ੍ਰੀ ਨੂੰ ਕਲਟਰ ਕੀਤੇ ਬਿਨਾਂ ਕਿਰਿਆਵਾਂ ਲਈ ਖਾਸ ਕੁੰਜੀ ਸੰਜੋਗਾਂ ਦੀ ਮੈਪਿੰਗ ਨੂੰ ਸਮਰੱਥ ਕਰਦੇ ਹਨ। ਇਹ ਵਿਸ਼ੇਸ਼ ਤੌਰ 'ਤੇ ਲਾਭਦਾਇਕ ਹੁੰਦਾ ਹੈ ਜਦੋਂ ਐਪਲੀਕੇਸ਼ਨ ਨੂੰ ਵੱਖ-ਵੱਖ ਭਾਗਾਂ ਵਿੱਚ ਵੱਖ-ਵੱਖ ਕੁੰਜੀਆਂ ਲਈ ਵੱਖਰੇ ਢੰਗ ਨਾਲ ਜਵਾਬ ਦੇਣ ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ। ਇਹਨਾਂ ਵਿਜੇਟਸ ਦੀ ਵਰਤੋਂ ਕਰਨਾ ਯਕੀਨੀ ਬਣਾਉਂਦਾ ਹੈ ਕਿ ਸ਼ਾਰਟਕੱਟ ਅਲੱਗ-ਥਲੱਗ ਹਨ ਅਤੇ ਕੋਡਬੇਸ ਦੇ ਦੂਜੇ ਹਿੱਸਿਆਂ ਨੂੰ ਪ੍ਰਭਾਵਿਤ ਕੀਤੇ ਬਿਨਾਂ ਆਸਾਨੀ ਨਾਲ ਪ੍ਰਬੰਧਿਤ ਜਾਂ ਅੱਪਡੇਟ ਕੀਤੇ ਜਾ ਸਕਦੇ ਹਨ।

ਗਲੋਬਲ ਸ਼ਾਰਟਕੱਟਾਂ ਨੂੰ ਸੰਭਾਲਣ ਵੇਲੇ ਇੱਕ ਹੋਰ ਮਹੱਤਵਪੂਰਨ ਵਿਚਾਰ ਪ੍ਰਦਰਸ਼ਨ ਅਨੁਕੂਲਤਾ ਨੂੰ ਯਕੀਨੀ ਬਣਾਉਣਾ ਹੈ। ਜਦੋਂ ਇੱਕ ਵਿਜੇਟ ਦਾ ਰੁੱਖ ਵੱਡਾ ਹੁੰਦਾ ਹੈ, ਤਾਂ ਵਿਸ਼ਵ ਪੱਧਰ 'ਤੇ ਹਰ ਮੁੱਖ ਘਟਨਾ ਨੂੰ ਸੰਭਾਲਣਾ ਮਾਮੂਲੀ ਕਾਰਗੁਜ਼ਾਰੀ ਵਿੱਚ ਗਿਰਾਵਟ ਦਾ ਕਾਰਨ ਬਣ ਸਕਦਾ ਹੈ। ਫਲਟਰ ਡਿਵੈਲਪਰ ਧਿਆਨ ਨਾਲ ਇਹ ਫੈਸਲਾ ਕਰਕੇ ਇਸ ਨੂੰ ਘੱਟ ਕਰ ਸਕਦੇ ਹਨ ਕਿ ਕਿੱਥੇ ਰੱਖਣਾ ਹੈ ਅਤੇ ਬੇਲੋੜੀ ਘਟਨਾ ਨੂੰ ਸੰਭਾਲਣ ਨੂੰ ਘੱਟ ਕਰਨ ਲਈ ਵਿਜੇਟਸ। ਉਦਾਹਰਨ ਲਈ, ਪੂਰੇ ਰੁੱਖ ਨੂੰ ਇੱਕ ਸਿੰਗਲ ਵਿੱਚ ਲਪੇਟਣ ਦੀ ਬਜਾਏ ਫੋਕਸ ਵਿਜੇਟ, ਛੋਟੇ, ਸਥਾਨਕ ਫੋਕਸ ਵਿਜੇਟਸ ਨੂੰ ਨਾਜ਼ੁਕ ਬਿੰਦੂਆਂ 'ਤੇ ਰੱਖਣਾ ਕਾਰਜਸ਼ੀਲਤਾ ਅਤੇ ਕੁਸ਼ਲਤਾ ਵਿਚਕਾਰ ਸਹੀ ਸੰਤੁਲਨ ਬਣਾ ਸਕਦਾ ਹੈ।

ਫਲਟਰ ਵੀ ਸਪੋਰਟ ਕਰਦਾ ਹੈ ਘੱਟ-ਪੱਧਰੀ ਕੀਬੋਰਡ ਇਨਪੁਟ ਲਈ, ਵਧੇਰੇ ਦਾਣੇਦਾਰ ਨਿਯੰਤਰਣ ਦਿੰਦੇ ਹੋਏ। ਇਹ ਵਿਜੇਟ ਓਪਰੇਟਿੰਗ ਸਿਸਟਮ ਦੇ ਕੀਬੋਰਡ ਇਵੈਂਟਾਂ ਤੱਕ ਸਿੱਧੀ ਪਹੁੰਚ ਪ੍ਰਦਾਨ ਕਰਦਾ ਹੈ, ਜੋ ਐਪਸ ਬਣਾਉਣ ਵੇਲੇ ਉਪਯੋਗੀ ਹੋ ਸਕਦਾ ਹੈ ਜਿਨ੍ਹਾਂ ਲਈ ਬਹੁਤ ਜ਼ਿਆਦਾ ਅਨੁਕੂਲਿਤ ਵਿਵਹਾਰ ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ, ਜਿਵੇਂ ਕਿ ਗੇਮਿੰਗ ਜਾਂ ਪਹੁੰਚਯੋਗਤਾ ਸਾਧਨ। ਅਜਿਹੇ ਮਾਮਲਿਆਂ ਵਿੱਚ, RawKeyboardListener ਨੂੰ ਕਾਰਵਾਈਆਂ ਨਾਲ ਜੋੜਨਾ ਡਿਵੈਲਪਰਾਂ ਨੂੰ ਇੰਪੁੱਟ ਪ੍ਰਬੰਧਨ 'ਤੇ ਵੱਧ ਤੋਂ ਵੱਧ ਨਿਯੰਤਰਣ ਨੂੰ ਯਕੀਨੀ ਬਣਾਉਂਦੇ ਹੋਏ, ਸਟੈਂਡਰਡ ਅਤੇ ਗੈਰ-ਸਟੈਂਡਰਡ ਕੀਬੋਰਡ ਇਨਪੁਟਸ ਦੋਵਾਂ ਲਈ ਜਵਾਬਾਂ ਨੂੰ ਅਨੁਕੂਲਿਤ ਕਰਨ ਦੀ ਇਜਾਜ਼ਤ ਦਿੰਦਾ ਹੈ।

  1. ਤੁਸੀਂ ਕਿਵੇਂ ਵਰਤਦੇ ਹੋ ਅਤੇ ਫਲਟਰ ਵਿੱਚ?
  2. ਦ ਵਿਜੇਟ ਮੁੱਖ ਸੰਜੋਗਾਂ ਨੂੰ ਇਰਾਦੇ ਨਾਲ ਨਕਸ਼ੇ ਕਰਦਾ ਹੈ, ਜੋ ਕਿ ਦੁਆਰਾ ਚਲਾਇਆ ਜਾਂਦਾ ਹੈ ਵਿਜੇਟ ਇਹ ਸੁਮੇਲ ਐਪ ਵਿੱਚ ਕੀ-ਬੋਰਡ ਸ਼ਾਰਟਕੱਟਾਂ ਦੇ ਮਾਡਿਊਲਰ ਹੈਂਡਲਿੰਗ ਦੀ ਇਜਾਜ਼ਤ ਦਿੰਦਾ ਹੈ।
  3. ਦਾ ਮਕਸਦ ਕੀ ਹੈ ਫਲਟਰ ਵਿੱਚ?
  4. ਦ ਵਿਜੇਟ ਕੱਚੀਆਂ ਮੁੱਖ ਘਟਨਾਵਾਂ ਨੂੰ ਕੈਪਚਰ ਕਰਦਾ ਹੈ, ਵਧੇਰੇ ਅਨੁਕੂਲਿਤ ਇਨਪੁਟ ਹੈਂਡਲਿੰਗ ਲਈ ਮੁੱਖ ਪ੍ਰੈੱਸ ਇਵੈਂਟਾਂ ਤੱਕ ਘੱਟ-ਪੱਧਰੀ ਪਹੁੰਚ ਪ੍ਰਦਾਨ ਕਰਦਾ ਹੈ।
  5. ਕਈ ਕਰ ਸਕਦੇ ਹਨ ਵਿਜੇਟਸ ਇੱਕੋ ਵਿਜੇਟ ਟ੍ਰੀ ਵਿੱਚ ਮੌਜੂਦ ਹਨ?
  6. ਹਾਂ, ਮਲਟੀਪਲ ਵਿਜੇਟਸ ਨੂੰ ਰਣਨੀਤਕ ਤੌਰ 'ਤੇ ਰੱਖਿਆ ਜਾ ਸਕਦਾ ਹੈ ਤਾਂ ਜੋ ਇਹ ਯਕੀਨੀ ਬਣਾਇਆ ਜਾ ਸਕੇ ਕਿ ਐਪ ਦੇ ਕੁਝ ਹਿੱਸੇ ਸੰਦਰਭ ਦੇ ਆਧਾਰ 'ਤੇ ਮੁੱਖ ਇਵੈਂਟਾਂ ਲਈ ਵੱਖਰੇ ਢੰਗ ਨਾਲ ਜਵਾਬ ਦਿੰਦੇ ਹਨ।
  7. ਜੇਕਰ ਨਹੀਂ ਤਾਂ ਕੀ ਹੁੰਦਾ ਹੈ ਇੱਕ ਵਿਜੇਟ ਤੋਂ ਵਾਪਸ ਕੀਤਾ ਜਾਂਦਾ ਹੈ?
  8. ਜੇਕਰ ਕੋਈ ਵਿਜੇਟ ਵਾਪਸ ਆਉਂਦਾ ਹੈ , ਘਟਨਾ ਜਾਵਾ ਸਕ੍ਰਿਪਟ ਵਿੱਚ ਦੇਖੇ ਗਏ ਬੁਲਬੁਲੇ ਪੜਾਅ ਦੀ ਨਕਲ ਕਰਦੇ ਹੋਏ, ਪ੍ਰਚਾਰ ਕਰਨਾ ਜਾਰੀ ਰੱਖਦੀ ਹੈ।
  9. ਕਿਵੇਂ ਕਰਦਾ ਹੈ ਸ਼ਾਰਟਕੱਟ ਹੈਂਡਲਿੰਗ ਵਿੱਚ ਸੁਧਾਰ ਕਰਨਾ ਹੈ?
  10. ਜਦੋਂ ਏ ਵਿਜੇਟ ਨੂੰ ਆਟੋਫੋਕਸ 'ਤੇ ਸੈੱਟ ਕੀਤਾ ਗਿਆ ਹੈ, ਇਹ ਐਪ ਸ਼ੁਰੂ ਹੋਣ 'ਤੇ ਤੁਰੰਤ ਫੋਕਸ ਪ੍ਰਾਪਤ ਕਰਦਾ ਹੈ, ਇਹ ਯਕੀਨੀ ਬਣਾਉਂਦਾ ਹੈ ਕਿ ਮੁੱਖ ਇਵੈਂਟਾਂ ਨੂੰ ਸ਼ੁਰੂ ਤੋਂ ਹੀ ਕੈਪਚਰ ਕੀਤਾ ਗਿਆ ਹੈ।
  11. ਵਰਤਣ ਦਾ ਕੀ ਫਾਇਦਾ ਹੈ ਇੱਕ ਨਿਯਮਤ ਵੱਧ ਵਿਜੇਟ?
  12. ਮਲਟੀਪਲ ਦਾ ਪ੍ਰਬੰਧਨ ਕਰਦਾ ਹੈ ਵਿਜੇਟਸ, ਵਿਜੇਟ ਸਮੂਹ ਦੇ ਅੰਦਰ ਫੋਕਸ ਕਿੱਥੇ ਰਹਿੰਦਾ ਹੈ ਇਸ 'ਤੇ ਬਿਹਤਰ ਸੰਗਠਨ ਅਤੇ ਨਿਯੰਤਰਣ ਦੀ ਆਗਿਆ ਦਿੰਦਾ ਹੈ।
  13. ਕੀ ਫਲਟਰ ਪਲੇਟਫਾਰਮ-ਵਿਸ਼ੇਸ਼ ਮੁੱਖ ਘਟਨਾਵਾਂ ਨੂੰ ਸੰਭਾਲ ਸਕਦਾ ਹੈ?
  14. ਹਾਂ, ਵਰਤ ਕੇ ਜਾਂ , ਫਲਟਰ ਪਲੇਟਫਾਰਮ-ਵਿਸ਼ੇਸ਼ ਕੁੰਜੀ ਘਟਨਾਵਾਂ ਨੂੰ ਕੈਪਚਰ ਕਰ ਸਕਦਾ ਹੈ, ਜਿਵੇਂ ਕਿ ਵਿਸ਼ੇਸ਼ ਫੰਕਸ਼ਨ ਕੁੰਜੀਆਂ।
  15. ਪ੍ਰਦਰਸ਼ਨ ਗਲੋਬਲ ਕੀਬੋਰਡ ਸ਼ਾਰਟਕੱਟ ਹੈਂਡਲਿੰਗ ਨੂੰ ਕਿਵੇਂ ਪ੍ਰਭਾਵਿਤ ਕਰਦਾ ਹੈ?
  16. ਬਹੁਤ ਸਾਰੇ ਗਲੋਬਲ ਸਰੋਤਿਆਂ ਨੂੰ ਰੱਖਣ ਨਾਲ ਪ੍ਰਦਰਸ਼ਨ ਹੌਲੀ ਹੋ ਸਕਦਾ ਹੈ। ਡਿਵੈਲਪਰਾਂ ਨੂੰ ਰਣਨੀਤਕ ਤੌਰ 'ਤੇ ਸਥਾਨ ਦੇਣਾ ਚਾਹੀਦਾ ਹੈ ਅਤੇ ਬੇਲੋੜੀ ਘਟਨਾ ਨੂੰ ਸੰਭਾਲਣ ਤੋਂ ਬਚਣ ਲਈ ਵਿਜੇਟਸ।
  17. ਫਲਟਰ ਵਿੱਚ ਕੀਬੋਰਡ ਇਵੈਂਟਾਂ ਦੀ ਜਾਂਚ ਕਰਨ ਲਈ ਸਭ ਤੋਂ ਵਧੀਆ ਅਭਿਆਸ ਕੀ ਹਨ?
  18. ਵਰਤੋ ਯੂਨਿਟ ਟੈਸਟ ਬਣਾਉਣ ਲਈ ਜੋ ਮੁੱਖ ਘਟਨਾਵਾਂ ਦੀ ਨਕਲ ਕਰਦੇ ਹਨ। ਇਹ ਯਕੀਨੀ ਬਣਾਉਂਦਾ ਹੈ ਕਿ ਐਪਲੀਕੇਸ਼ਨ ਦਾ ਇਵੈਂਟ ਹੈਂਡਲਿੰਗ ਤਰਕ ਵੱਖ-ਵੱਖ ਸਥਿਤੀਆਂ ਵਿੱਚ ਉਮੀਦ ਅਨੁਸਾਰ ਕੰਮ ਕਰਦਾ ਹੈ।
  19. ਕੀ ਮੈਂ ਇੱਕ ਮੁੱਖ ਘਟਨਾ ਨੂੰ ਸੰਭਾਲਣ ਤੋਂ ਬਾਅਦ ਘਟਨਾ ਦੇ ਪ੍ਰਸਾਰ ਨੂੰ ਰੋਕ ਸਕਦਾ ਹਾਂ?
  20. ਹਾਂ, ਵਾਪਸ ਆ ਰਿਹਾ ਹੈ ਤੋਂ ਹੈਂਡਲਰ ਘਟਨਾ ਦੇ ਹੋਰ ਪ੍ਰਸਾਰ ਨੂੰ ਰੋਕਦਾ ਹੈ।

ਦ ਵਿਜੇਟ ਉੱਚ-ਪ੍ਰਾਥਮਿਕਤਾ ਵਾਲੀਆਂ ਘਟਨਾਵਾਂ ਨੂੰ ਵਿਸ਼ਵ ਪੱਧਰ 'ਤੇ ਕੈਪਚਰ ਕਰਨ ਦਾ ਵਧੀਆ ਤਰੀਕਾ ਹੈ, ਇਹ ਯਕੀਨੀ ਬਣਾਉਂਦਾ ਹੈ ਕਿ Escape ਕੁੰਜੀ ਵਰਗੇ ਸ਼ਾਰਟਕੱਟ ਸਿਖਰਲੇ ਪੱਧਰ 'ਤੇ ਸੰਭਾਲੇ ਜਾਂਦੇ ਹਨ। ਇਹ ਵਿਸ਼ੇਸ਼ ਤੌਰ 'ਤੇ ਉਹਨਾਂ ਐਪਲੀਕੇਸ਼ਨਾਂ ਲਈ ਲਾਭਦਾਇਕ ਹੈ ਜੋ ਤੇਜ਼-ਪਹੁੰਚ ਕਮਾਂਡਾਂ 'ਤੇ ਨਿਰਭਰ ਕਰਦੇ ਹਨ ਜਾਂ ਕਿਸੇ ਹੋਰ ਵਿਜੇਟਸ 'ਤੇ ਪ੍ਰਤੀਕਿਰਿਆ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ ਖਾਸ ਮੁੱਖ ਇਨਪੁਟਸ ਨੂੰ ਰੋਕਣ ਦੀ ਲੋੜ ਹੁੰਦੀ ਹੈ।

ਦੂਜੇ ਪਾਸੇ, ਘੱਟ ਤਰਜੀਹ ਵਾਲੇ ਸ਼ਾਰਟਕੱਟਾਂ ਲਈ, ਵਰਤਦੇ ਹੋਏ ਜਾਂ ਜਾਵਾ ਸਕ੍ਰਿਪਟ ਦੇ ਬਬਲਿੰਗ ਪੜਾਅ ਦੀ ਨਕਲ ਕਰਨ ਵਾਲੀਆਂ ਘਟਨਾਵਾਂ ਨੂੰ ਪ੍ਰਸਾਰਿਤ ਕਰਨ ਦੀ ਇਜਾਜ਼ਤ ਦੇਣਾ। ਇਹ ਸੁਨਿਸ਼ਚਿਤ ਕਰਦਾ ਹੈ ਕਿ ਕੀਬੋਰਡ ਇਵੈਂਟਸ ਕੇਵਲ ਤਾਂ ਹੀ ਸੰਸਾਧਿਤ ਕੀਤੇ ਜਾਂਦੇ ਹਨ ਜੇਕਰ ਕੋਈ ਹੋਰ ਵਿਜੇਟ ਉਹਨਾਂ ਨੂੰ ਪਹਿਲਾਂ ਨਹੀਂ ਵਰਤਦਾ। ਜਦੋਂ ਕਿ ਫਲਟਰ ਘਟਨਾ ਦੇ ਪੜਾਵਾਂ ਦਾ ਸਿੱਧਾ ਸਮਰਥਨ ਨਹੀਂ ਕਰਦਾ ਹੈ, ਇਹ ਵਿਧੀ ਸਮਾਨ ਵਿਵਹਾਰ ਲਈ ਵਿਹਾਰਕ ਵਿਕਲਪ ਪੇਸ਼ ਕਰਦੇ ਹਨ।

  1. 'ਤੇ ਵਿਸਤ੍ਰਿਤ ਦਸਤਾਵੇਜ਼ ਅਤੇ ਅਧਿਕਾਰਤ ਫਲਟਰ ਫਰੇਮਵਰਕ ਤੋਂ: ਫਲਟਰ API ਦਸਤਾਵੇਜ਼
  2. ਵਰਤਦੇ ਹੋਏ ਫਲਟਰ ਵਿੱਚ ਕੱਚੀਆਂ ਮੁੱਖ ਘਟਨਾਵਾਂ ਨਾਲ ਨਜਿੱਠਣ ਬਾਰੇ ਸੂਝ : ਫਲਟਰ ਕੁੱਕਬੁੱਕ
  3. JavaScript ਦੇ ਇਵੈਂਟ ਪੜਾਵਾਂ ਅਤੇ ਫਲਟਰ ਦੇ ਇਵੈਂਟ ਹੈਂਡਲਿੰਗ ਵਿਚਕਾਰ ਤੁਲਨਾ: MDN ਵੈੱਬ ਡੌਕਸ
  4. ਫਲਟਰ ਟੈਸਟਿੰਗ ਸਭ ਤੋਂ ਵਧੀਆ ਅਭਿਆਸ, ਸਮੇਤ ਇਨਪੁਟ ਇਵੈਂਟਾਂ ਦੀ ਨਕਲ ਕਰਨ ਲਈ: ਫਲਟਰ ਟੈਸਟਿੰਗ ਦਸਤਾਵੇਜ਼
  5. JavaScript ਦੇ ਇਵੈਂਟ ਪ੍ਰਸਾਰ ਮਾਡਲ ਨੂੰ ਉਦਾਹਰਣਾਂ ਨਾਲ ਸਮਝਾਇਆ ਗਿਆ: JavaScript.info