ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್ ಈವೆಂಟ್ ಗುರುತಿಸುವಿಕೆಯ ಹಿಂದಿನ ಮ್ಯಾಜಿಕ್
JavaScript ನೊಂದಿಗೆ ಸ್ವಲ್ಪ ಪ್ರಯೋಗ ಮಾಡಿದ ಯಾರಿಗಾದರೂ ಈವೆಂಟ್ಗಳು ಕೋಡಿಂಗ್ನ ಅತ್ಯಗತ್ಯ ಅಂಶವಾಗಿದೆ. ನಂತಹ ಕೋಡ್ ಬರೆಯುವುದು addEventListener ನಿರ್ದಿಷ್ಟ ಸಂವಾದಗಳ ಮೇಲೆ ಕ್ರಿಯೆಗಳನ್ನು ಪ್ರಾರಂಭಿಸಲು, ಅಂತಹ ಬಟನ್ ಅಥವಾ ಕೀಲಿಯನ್ನು ಒತ್ತುವುದು ಪರಿಚಿತ ಅನುಭವವಾಗಿರಬಹುದು. ಫಂಕ್ಷನ್ನ ಆರ್ಗ್ಯುಮೆಂಟ್ ಹೆಸರನ್ನು "ಈವೆಂಟ್" ಎಂದು ಘೋಷಿಸದ ಸಂದರ್ಭಗಳಲ್ಲಿಯೂ ಸಹ, ಈವೆಂಟ್ ಅನ್ನು ಅದು ನಿರ್ವಹಿಸುತ್ತಿದೆ ಎಂದು JavaScript ಯಾವಾಗಲೂ ಹೇಗೆ ಗುರುತಿಸುತ್ತದೆ ಎಂಬ ಬಗ್ಗೆ ನಿಮಗೆ ಕುತೂಹಲವಿರಬಹುದು.
ವಿಶೇಷವಾಗಿ ಈವೆಂಟ್ ಆಬ್ಜೆಕ್ಟ್ ಅನ್ನು ಸ್ಪಷ್ಟವಾಗಿ ಹೇಳಲಾಗಿಲ್ಲ ಎಂದು ಕಂಡುಬಂದಾಗ, ಇದು ಗೊಂದಲಕ್ಕೊಳಗಾಗಬಹುದು. ಉದಾಹರಣೆಗೆ, ನಿಮ್ಮ ಕಾರ್ಯವನ್ನು ಮತ್ತು ಎಲ್ಲಿ ನೀಡಬೇಕೆಂದು ಬ್ರೌಸರ್ ಹೇಗೆ ನಿರ್ಧರಿಸುತ್ತದೆ ಎಂಬುದರ ಕುರಿತು ನೀವು ಕುತೂಹಲ ಹೊಂದಿರಬಹುದು ಘಟನೆ document.addEventListener("ಕೀಡೌನ್", ಫಂಕ್ಷನ್(ಈವೆಂಟ್) {...}) ನಂತಹ ಕೋಡ್ ಬರೆಯುವಾಗ ಹುಟ್ಟುತ್ತದೆ.
JavaScript ನಲ್ಲಿನ ಈವೆಂಟ್ ಹ್ಯಾಂಡ್ಲಿಂಗ್ ಸಿಸ್ಟಮ್ ಕೆಲವು ಗುಪ್ತ ಕಾರ್ಯವಿಧಾನಗಳನ್ನು ಒಳಗೊಂಡಿದೆ. ಪ್ಯಾರಾಮೀಟರ್ ಹೆಸರಿನ ಹೊರತಾಗಿಯೂ, ಈವೆಂಟ್ ಕೇಳುಗರನ್ನು ಲಗತ್ತಿಸಿದಾಗ ಬ್ರೌಸರ್ ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಈವೆಂಟ್ ವಸ್ತುವನ್ನು ಕಾಲ್ಬ್ಯಾಕ್ ಕಾರ್ಯಕ್ಕೆ ತಲುಪಿಸುತ್ತದೆ. ಈವೆಂಟ್ ಅನ್ನು ನಿರ್ವಹಿಸಲು ಅಗತ್ಯವಿರುವ ಡೇಟಾವನ್ನು ಕಾರ್ಯವು ಯಾವಾಗಲೂ ಪಡೆಯುತ್ತದೆ ಎಂದು ಇದು ಖಾತರಿಪಡಿಸುತ್ತದೆ.
ಈ ಪೋಸ್ಟ್ JavaScript ನ ಈವೆಂಟ್ ಸಿಸ್ಟಮ್ನ ಆಂತರಿಕ ಕಾರ್ಯಗಳನ್ನು ಅನ್ವೇಷಿಸುತ್ತದೆ ಮತ್ತು ವಾದದ ಹೆಸರನ್ನು ಲೆಕ್ಕಿಸದೆಯೇ ಈವೆಂಟ್ಗಳನ್ನು ಹೇಗೆ ಗುರುತಿಸಲಾಗುತ್ತದೆ ಮತ್ತು ರವಾನಿಸಲಾಗುತ್ತದೆ ಎಂಬುದನ್ನು ತೋರಿಸುತ್ತದೆ.
ಆಜ್ಞೆ | ಬಳಕೆಯ ಉದಾಹರಣೆ |
---|---|
addEventListener() | ಈವೆಂಟ್ ಹ್ಯಾಂಡ್ಲರ್ ಅನ್ನು ಈ ತಂತ್ರವನ್ನು ಬಳಸಿಕೊಂಡು ನಿರ್ದಿಷ್ಟ ಈವೆಂಟ್ ಪ್ರಕಾರಕ್ಕೆ ("ಕೀಡೌನ್" ನಂತಹ) ಲಗತ್ತಿಸಬಹುದು. ಇದು ಈವೆಂಟ್ ಅನ್ನು ಕೇಳಿದೆ ಎಂದು ಖಚಿತಪಡಿಸುತ್ತದೆ ಮತ್ತು ಅದು ಸಂಭವಿಸಿದಾಗ, ಗೊತ್ತುಪಡಿಸಿದ ಕಾರ್ಯವನ್ನು ಪ್ರಾರಂಭಿಸುತ್ತದೆ. |
KeyboardEvent() | ಕೀಬೋರ್ಡ್ ಈವೆಂಟ್ ಕನ್ಸ್ಟ್ರಕ್ಟರ್ ಕನ್ಸ್ಟ್ರಕ್ಟರ್. ಇದು ಪರೀಕ್ಷೆಗೆ ಸಹಾಯಕವಾಗಿದೆ ಏಕೆಂದರೆ ಇದು ಕೀಬೋರ್ಡ್ ಈವೆಂಟ್ ಅನ್ನು ಪ್ರೋಗ್ರಾಮಿಕ್ ಆಗಿ ಪುನರಾವರ್ತಿಸಲು ಡೆವಲಪರ್ಗಳನ್ನು ಸಕ್ರಿಯಗೊಳಿಸುತ್ತದೆ (ಕೀಡೌನ್ನಂತೆ). |
event.key | ಕೀಲಿಯನ್ನು ಒತ್ತಿದಾಗ, ಈ ಆಸ್ತಿಯು ಈವೆಂಟ್ ವಸ್ತುವಿನಿಂದ ಪ್ರಮುಖ ಮೌಲ್ಯವನ್ನು ಪಡೆಯುತ್ತದೆ. ಇದು ಒತ್ತಿದ ನಿರ್ದಿಷ್ಟ ಕೀಲಿಯನ್ನು ಸೂಚಿಸುತ್ತದೆ, ಉದಾಹರಣೆಗೆ "a," "Enter," ಅಥವಾ "Shift." |
jest.fn() | ಜೆಸ್ಟ್ ಫಂಕ್ಷನ್ನಿಂದ ರಚಿತವಾದ ನಕಲಿ ಕಾರ್ಯ. ಕಾರ್ಯದ ಕರೆಗಳನ್ನು ಅನುಕರಿಸಲು ಮತ್ತು ಸಂಪೂರ್ಣ ತರ್ಕವನ್ನು ಅಭಿವೃದ್ಧಿಪಡಿಸದೆ ಅವರ ನಡವಳಿಕೆಯನ್ನು ಪರೀಕ್ಷಿಸಲು, ಇದು ಘಟಕ ಪರೀಕ್ಷೆಯಲ್ಲಿ ವಿಶೇಷವಾಗಿ ಸಹಾಯಕವಾಗಿದೆ. |
dispatchEvent() | ಈ ವಿಧಾನವನ್ನು ಬಳಸಿಕೊಂಡು ಒಂದು ಅಂಶದ ಮೇಲೆ ಈವೆಂಟ್ ಅನ್ನು ಹಸ್ತಚಾಲಿತವಾಗಿ ಪ್ರಚೋದಿಸಬಹುದು. "ಕೀಡೌನ್" ಈವೆಂಟ್ ಅನ್ನು ಕಳುಹಿಸಲು ಉದಾಹರಣೆಗಳಾದ್ಯಂತ ಇದನ್ನು ಬಳಸಿಕೊಳ್ಳಲಾಗುತ್ತದೆ, ಇದನ್ನು ಈವೆಂಟ್ ಕೇಳುಗರು ಪ್ರತಿಬಂಧಿಸಬಹುದು ಮತ್ತು ಪರೀಕ್ಷೆಗೆ ಬಳಸಬಹುದು. |
expect() | ನಿರೀಕ್ಷಿಸಿದಂತೆ ಮೌಲ್ಯ ಅಥವಾ ಕಾರ್ಯವು ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ ಎಂದು ಪರಿಶೀಲಿಸಲು ಜೆಸ್ಟ್ ಪರೀಕ್ಷಾ ಚೌಕಟ್ಟಿನ ಒಂದು ಅಂಶವಾದ ಎಕ್ಸ್ಪೆಕ್ಟ್() ಅನ್ನು ಬಳಸಲಾಗುತ್ತದೆ. ಉದಾಹರಣೆಯಲ್ಲಿ ಈವೆಂಟ್ ಹ್ಯಾಂಡ್ಲರ್ ಅನ್ನು ಸೂಕ್ತ ಘಟನೆಯೊಂದಿಗೆ ಕರೆಯಲಾಗಿದೆಯೇ ಎಂದು ಇದು ಪರಿಶೀಲಿಸುತ್ತದೆ. |
try...catch | ದೋಷಗಳನ್ನು ಪರಿಹರಿಸಲು ಮೀಸಲಾದ ವಿಭಾಗ. ಟ್ರೈ ಬ್ಲಾಕ್ನ ಒಳಗಿನ ಯಾವುದೇ ಕೋಡ್ ದೋಷವನ್ನು ಹುಟ್ಟುಹಾಕಿದರೆ, ಸ್ಕ್ರಿಪ್ಟ್ ಒಡೆಯದಂತೆ ನೋಡಿಕೊಳ್ಳುವ ಸಂದರ್ಭದಲ್ಲಿ ಕ್ಯಾಚ್ ಬ್ಲಾಕ್ ರನ್ ಆಗುತ್ತದೆ. |
console.error() | ಈ ಆಜ್ಞೆಯನ್ನು ಬಳಸಿಕೊಂಡು ದೋಷ ಸಂದೇಶಗಳನ್ನು ಕನ್ಸೋಲ್ಗೆ ಮುದ್ರಿಸಲಾಗುತ್ತದೆ. ಕ್ಯಾಚ್ ಬ್ಲಾಕ್ನಲ್ಲಿ ದೋಷ ವಿವರಗಳನ್ನು ಲಾಗ್ ಮಾಡಲು ಇದನ್ನು ಬಳಸಲಾಗುತ್ತದೆ, ಇದು ದೋಷನಿವಾರಣೆಯಲ್ಲಿ ಸಹಾಯ ಮಾಡುತ್ತದೆ. |
ಈವೆಂಟ್ ಕೇಳುಗರಲ್ಲಿ ಈವೆಂಟ್ಗಳನ್ನು ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್ ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಹೇಗೆ ಗುರುತಿಸುತ್ತದೆ
addEventListener ಬಳಕೆದಾರರ ಸಂವಹನಗಳನ್ನು ನಿರ್ವಹಿಸಲು ಅತ್ಯಂತ ನಿರ್ಣಾಯಕ ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್ ಕಾರ್ಯಗಳಲ್ಲಿ ಒಂದಾಗಿದೆ. ಈ ವಿಧಾನದ ಸಹಾಯದಿಂದ, ಈವೆಂಟ್ ಹ್ಯಾಂಡ್ಲರ್ ಅನ್ನು ನಿರ್ದಿಷ್ಟ ಈವೆಂಟ್ ಪ್ರಕಾರಕ್ಕೆ ಲಗತ್ತಿಸಬಹುದು - ಉದಾಹರಣೆಗೆ "ಕ್ಲಿಕ್" ಅಥವಾ "ಕೀಡೌನ್." ನೀವು ಬಳಸುವಾಗ ಬ್ರೌಸರ್ ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಈವೆಂಟ್ ವಸ್ತುವನ್ನು ಕಾಲ್ಬ್ಯಾಕ್ ಕಾರ್ಯಕ್ಕೆ ಕಳುಹಿಸುತ್ತದೆ addEventListener. ಒತ್ತಿದ ಕೀ ಮತ್ತು ಕ್ಲಿಕ್ ಮಾಡಿದ ಅಂಶ ಸೇರಿದಂತೆ ಎಲ್ಲಾ ಈವೆಂಟ್ ವಿವರಗಳು ಈ ವಸ್ತುವಿನಲ್ಲಿ ಒಳಗೊಂಡಿರುತ್ತವೆ. ಆಸಕ್ತಿದಾಯಕ ವಿಷಯವೆಂದರೆ ಬ್ರೌಸರ್ ಯಾವಾಗಲೂ ಈವೆಂಟ್ ಆಬ್ಜೆಕ್ಟ್ ಅನ್ನು ಒದಗಿಸುತ್ತದೆ, ಕಾರ್ಯದಲ್ಲಿ ಪ್ಯಾರಾಮೀಟರ್ ಹೆಸರನ್ನು ಲೆಕ್ಕಿಸದೆಯೇ - "ಈವೆಂಟ್," "ಇ," ಅಥವಾ "ಇವಿಟಿ."
ಮೊದಲಿಗೆ, ಮೇಲಿನ ಉದಾಹರಣೆಗಳಲ್ಲಿ "ಕೀಡೌನ್" ಈವೆಂಟ್ ಅನ್ನು ಬಳಸಿಕೊಂಡು ಸರಳವಾದ ಸೆಟಪ್ ಅನ್ನು ನಾವು ನೋಡುತ್ತೇವೆ. ಬ್ರೌಸರ್ ಈವೆಂಟ್ ಆಬ್ಜೆಕ್ಟ್ ಅನ್ನು ರಚಿಸುತ್ತದೆ ಮತ್ತು ಬಳಕೆದಾರರಿಂದ ಕೀಲಿಯನ್ನು ಒತ್ತಿದಾಗ ಅದನ್ನು ಕಾಲ್ಬ್ಯಾಕ್ ಕಾರ್ಯಕ್ಕೆ ಕಳುಹಿಸುತ್ತದೆ. ಅದರ ನಂತರ, ಕಾರ್ಯವು ಈವೆಂಟ್ ಅನ್ನು ಕನ್ಸೋಲ್ಗೆ ಲಾಗ್ ಮಾಡುತ್ತದೆ, ಪ್ರಮುಖ ಹಿಟ್ ಮತ್ತು ಹೆಚ್ಚುವರಿ ಈವೆಂಟ್ ಗುಣಲಕ್ಷಣಗಳನ್ನು ಒಳಗೊಂಡಂತೆ ಎಲ್ಲಾ ಸಂಬಂಧಿತ ಮಾಹಿತಿಯನ್ನು ಪ್ರದರ್ಶಿಸುತ್ತದೆ. ನೆನಪಿಡುವ ಪ್ರಮುಖ ವಿಷಯವೆಂದರೆ ನೀವು ಈವೆಂಟ್ ವಸ್ತುವನ್ನು ಸ್ಪಷ್ಟವಾಗಿ ಘೋಷಿಸುವ ಅಗತ್ಯವಿಲ್ಲ ಏಕೆಂದರೆ ನೀವು ಒದಗಿಸಿದ ಪ್ರಕಾರವನ್ನು ಆಧರಿಸಿ ಈವೆಂಟ್ ಅನ್ನು ನಿರ್ವಹಿಸುತ್ತಿದೆ ಎಂದು JavaScript ಈಗಾಗಲೇ ಗುರುತಿಸಿದೆ addEventListener.
ಸಾಂಪ್ರದಾಯಿಕ ಫಂಕ್ಷನ್ ಎಕ್ಸ್ಪ್ರೆಶನ್ಗಳಿಗೆ ಬಾಣದ ಕಾರ್ಯಗಳನ್ನು ಬದಲಿಸುವುದನ್ನು ನಾವು ನೋಡಿದ್ದೇವೆ. ಬಾಣದ ಕಾರ್ಯಗಳು ಮತ್ತು ಅವುಗಳ ಹೆಚ್ಚು ಸಾಂದ್ರೀಕೃತ ಸಿಂಟ್ಯಾಕ್ಸ್ಗೆ ವರ್ತನೆಯು ಒಂದೇ ಆಗಿರುತ್ತದೆ: ಕಾರ್ಯವನ್ನು ಹೇಗೆ ನಿರ್ಮಿಸಿದರೂ ಬ್ರೌಸರ್ ಯಾವಾಗಲೂ ಈವೆಂಟ್ ವಸ್ತುವನ್ನು ಕಾರ್ಯಕ್ಕೆ ನೀಡುತ್ತದೆ. ಈವೆಂಟ್ ಹ್ಯಾಂಡ್ಲರ್ ಅನ್ನು ಮರುಬಳಕೆ ಮಾಡುವಂತೆ ಮಾಡಲು, ನಾವು ಅದನ್ನು "handleKeyDown" ಹೆಸರಿನ ವಿಶಿಷ್ಟ ವಿಧಾನವಾಗಿ ಮಾಡ್ಯುಲರೈಸ್ ಮಾಡಿದ್ದೇವೆ. ಹಲವಾರು ಈವೆಂಟ್ ಕೇಳುಗರಿಗೆ ಲಿಂಕ್ ಮಾಡಲು ಅಥವಾ ನಿಮ್ಮ ಕೋಡ್ನ ವಿವಿಧ ವಿಭಾಗಗಳಲ್ಲಿ ಮರುಬಳಕೆ ಮಾಡಲು ಅದೇ ಕಾರ್ಯವನ್ನು ಸಕ್ರಿಯಗೊಳಿಸುವ ಮೂಲಕ ಇದು ಕೋಡ್ ಅನ್ನು ಸ್ಪಷ್ಟಪಡಿಸುತ್ತದೆ ಮತ್ತು ನಿರ್ವಹಿಸಲು ಸುಲಭವಾಗುತ್ತದೆ.
ಬಳಸುತ್ತಿದೆ ಪ್ರಯತ್ನಿಸಿ... ಹಿಡಿಯಿರಿ, ದೃಢತೆಯನ್ನು ಇನ್ನಷ್ಟು ಹೆಚ್ಚಿಸಲು ದೋಷ ನಿರ್ವಹಣೆಯನ್ನು ಪರಿಚಯಿಸಲಾಯಿತು. ನೈಜ-ಪ್ರಪಂಚದ ಅಪ್ಲಿಕೇಶನ್ಗಳಿಗಾಗಿ, ಈವೆಂಟ್ಗಳನ್ನು ನಿರ್ವಹಿಸುವಾಗ ಅನಿರೀಕ್ಷಿತ ಸಂದರ್ಭಗಳು ಉಂಟಾದಾಗ ಕ್ರ್ಯಾಶ್ಗಳನ್ನು ತಡೆಯಲು ಇದು ಸಹಾಯ ಮಾಡುತ್ತದೆ. ಉದಾಹರಣೆಗೆ, ಈವೆಂಟ್ ಆಬ್ಜೆಕ್ಟ್ ನಿರೀಕ್ಷಿಸಿದಂತೆ ರಚನೆಯಾಗದಿದ್ದರೆ ಕ್ಯಾಚ್ ಬ್ಲಾಕ್ ಸ್ಕ್ರಿಪ್ಟ್ನ ಉಳಿದ ಭಾಗದೊಂದಿಗೆ ಮಧ್ಯಪ್ರವೇಶಿಸದೆ ದೋಷವನ್ನು ಲಾಗ್ ಮಾಡುತ್ತದೆ. ಕೊನೆಯದಾಗಿ, ಹ್ಯಾಂಡ್ಲರ್ ನಿರೀಕ್ಷಿತ ರೀತಿಯಲ್ಲಿ ವರ್ತಿಸುತ್ತದೆ ಎಂದು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಲು, ನಾವು ಜೆಸ್ಟ್ ಅನ್ನು ಬಳಸಿಕೊಂಡು ಕೀಪ್ರೆಸ್ ಈವೆಂಟ್ಗಳನ್ನು ಅನುಕರಿಸುವ ಯುನಿಟ್ ಪರೀಕ್ಷೆಯನ್ನು ಅಭಿವೃದ್ಧಿಪಡಿಸಿದ್ದೇವೆ. ದೊಡ್ಡ ಪ್ರಾಜೆಕ್ಟ್ಗಳಿಗೆ, ನಿಮ್ಮ ಈವೆಂಟ್ ಹ್ಯಾಂಡ್ಲಿಂಗ್ ವೈಶಿಷ್ಟ್ಯಗಳು ವಿವಿಧ ಸಂದರ್ಭಗಳಲ್ಲಿ ಸರಿಯಾಗಿ ಕಾರ್ಯಗತಗೊಳ್ಳುವುದನ್ನು ಖಚಿತಪಡಿಸುವುದರಿಂದ ಪರೀಕ್ಷೆ ಅತ್ಯಗತ್ಯ.
ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್ನಲ್ಲಿ ಈವೆಂಟ್ ಹ್ಯಾಂಡ್ಲಿಂಗ್ ಅನ್ನು ಎಕ್ಸ್ಪ್ಲೋರಿಂಗ್ ಮಾಡುವುದು: ಈವೆಂಟ್ ಪ್ಯಾರಾಮೀಟರ್ಗಳು ಹೇಗೆ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತವೆ
ಬಳಕೆದಾರರ ಇನ್ಪುಟ್ಗಾಗಿ ಈವೆಂಟ್ ಕೇಳುಗರೊಂದಿಗೆ ಫ್ರಂಟ್-ಎಂಡ್ JavaScript
// Approach 1: Basic event listener with "event" parameter
document.addEventListener("keydown", function(event) {
// The browser automatically passes the event object to this function
console.log(event); // Outputs the event object
});
// Explanation: The event object is implicitly passed to the function by the browser.
JavaScript ನಲ್ಲಿ ಈವೆಂಟ್ ನಿರ್ವಹಣೆಗಾಗಿ ಬಾಣದ ಕಾರ್ಯಗಳನ್ನು ಬಳಸುವುದು
ES6 ಬಾಣದ ಕಾರ್ಯಗಳೊಂದಿಗೆ ಫ್ರಂಟ್-ಎಂಡ್ ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್
// Approach 2: Using ES6 arrow functions
document.addEventListener("keydown", (e) => {
// Arrow function also accepts the event object, regardless of its name
console.log(e); // Outputs the event object
});
// Explanation: The event object is still passed, even with the shorthand arrow function syntax.
ಮಾಡ್ಯುಲರ್ ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್: ಮರುಬಳಕೆಯೊಂದಿಗೆ ಈವೆಂಟ್ ಹ್ಯಾಂಡ್ಲರ್
ಮರುಬಳಕೆ ಮಾಡಬಹುದಾದ ಈವೆಂಟ್ ಹ್ಯಾಂಡ್ಲರ್ಗಳಿಗಾಗಿ ಮಾಡ್ಯುಲರ್ ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್
// Approach 3: Modularizing the event handler for reuse
function handleKeyDown(event) {
// Function to handle keydown event, reusable in other contexts
console.log("Key pressed:", event.key); // Logs the key that was pressed
}
// Attaching the handler to the keydown event
document.addEventListener("keydown", handleKeyDown);
// Explanation: Separate function increases modularity and reusability.
ದೋಷ ನಿರ್ವಹಣೆಯೊಂದಿಗೆ ಈವೆಂಟ್ ಹ್ಯಾಂಡ್ಲಿಂಗ್ ದೃಢತೆಯನ್ನು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳುವುದು
ದೃಢತೆಗಾಗಿ ದೋಷ ನಿರ್ವಹಣೆಯೊಂದಿಗೆ ಆಪ್ಟಿಮೈಸ್ ಮಾಡಿದ JavaScript
// Approach 4: Adding error handling for more robust event handling
function handleKeyDown(event) {
try {
// Attempt to process the key event
console.log("Key pressed:", event.key);
} catch (error) {
// Handle any potential errors
console.error("Error handling keydown event:", error);
}
}
document.addEventListener("keydown", handleKeyDown);
// Explanation: Adding try-catch blocks improves code reliability.
ಘಟಕ ಪರೀಕ್ಷೆಗಳೊಂದಿಗೆ ಈವೆಂಟ್ ನಿರ್ವಹಣೆಯನ್ನು ಪರೀಕ್ಷಿಸುವುದು
ಈವೆಂಟ್ ಕೇಳುಗರನ್ನು ಮೌಲ್ಯೀಕರಿಸಲು JavaScript ಯುನಿಟ್ ಪರೀಕ್ಷೆಗಳಲ್ಲಿ Jest ಅನ್ನು ಬಳಸಲಾಗುತ್ತದೆ.
// Approach 5: Unit testing the event handler using Jest
const handleKeyDown = jest.fn((event) => {
return event.key; // Return the key for testing
});
// Simulate a keydown event in the test environment
test("handleKeyDown function receives keydown event", () => {
const event = new KeyboardEvent("keydown", { key: "a" });
document.dispatchEvent(event);
expect(handleKeyDown).toHaveBeenCalledWith(event);
});
// Explanation: Unit tests ensure the event handler behaves correctly.
ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್ ಈವೆಂಟ್ ಹ್ಯಾಂಡ್ಲಿಂಗ್ನಲ್ಲಿ ಈವೆಂಟ್ ಪ್ರಚಾರವು ಹೇಗೆ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ
ಈವೆಂಟ್ ಪ್ರಚಾರ ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್ ಈವೆಂಟ್ ಸಿಸ್ಟಮ್ನ ಮತ್ತೊಂದು ಪ್ರಮುಖ ಅಂಶವಾಗಿದೆ. ಈವೆಂಟ್, ಅಂತಹ "ಕೀಡೌನ್" ಅಥವಾ "ಕ್ಲಿಕ್" ಕೇವಲ ಸಂಭವಿಸುವುದಿಲ್ಲ ಮತ್ತು ಅಲ್ಲಿಗೆ ಕೊನೆಗೊಳ್ಳುವುದಿಲ್ಲ. ಇದು ಕಾರ್ಯನಿರ್ವಹಿಸುವುದನ್ನು ಮುಂದುವರೆಸಿದೆ. ಬದಲಿಗೆ, ಇದು ಘಟನೆಯ ಹರಿವಿನಲ್ಲಿ ಘಟಕಗಳ ವ್ಯವಸ್ಥೆಯನ್ನು ಅನುಸರಿಸುತ್ತದೆ. ಸೆರೆಹಿಡಿಯುವ ಹಂತ, ಗುರಿ ಹಂತ ಮತ್ತು ಬಬ್ಲಿಂಗ್ ಹಂತವು ಈ ಹರಿವಿನ ಮೂರು ಹಂತಗಳಾಗಿವೆ. ಹೆಚ್ಚಿನ ಈವೆಂಟ್ಗಳು ಪೂರ್ವನಿಯೋಜಿತವಾಗಿ ಬಬ್ಲಿಂಗ್ ಹಂತದಲ್ಲಿರುತ್ತವೆ, ಅಂದರೆ ಅವು ಗುರಿ ಅಂಶದಿಂದ ಅದರ ಪೂರ್ವವರ್ತಿಗಳವರೆಗೆ ಏರಿಳಿತದ ಪರಿಣಾಮದಂತೆ ಹರಡುತ್ತವೆ.
ಮುಂತಾದ ತಂತ್ರಗಳ ಬಳಕೆಯೊಂದಿಗೆ stopPropagation() ಮತ್ತು stopImmediatePropagation(), JavaScript ಡೆವಲಪರ್ಗಳು ಈವೆಂಟ್ಗಳು ಹೇಗೆ ಹರಡುತ್ತವೆ ಎಂಬುದನ್ನು ನಿಯಂತ್ರಿಸಬಹುದು. ಉದಾಹರಣೆಗೆ, ನೀವು ಬಳಸಬಹುದು event.stopPropagation() DOM ಕ್ರಮಾನುಗತದಲ್ಲಿ ಈವೆಂಟ್ ಅನ್ನು ಬಬ್ಲಿಂಗ್ ಮಾಡುವುದನ್ನು ನಿಲ್ಲಿಸಲು ನೀವು ಬಯಸದಿದ್ದರೆ. ಒಂದೇ ಈವೆಂಟ್ಗಾಗಿ ಒಂದಕ್ಕಿಂತ ಹೆಚ್ಚು ಅಂಶಗಳು ಕೇಳುತ್ತಿರುವಾಗ, ಆದರೆ ನೀವು ಕೇವಲ ಒಂದು ನಿರ್ದಿಷ್ಟ ಹ್ಯಾಂಡ್ಲರ್ ಅನ್ನು ಚಲಾಯಿಸಲು ಬಯಸಿದರೆ, ಇದು ನಿಜವಾಗಿಯೂ ಸಹಾಯಕವಾಗಿದೆ.
ಇದಲ್ಲದೆ, ಈವೆಂಟ್ ಪ್ರಸರಣವನ್ನು ಬಳಸಿಕೊಳ್ಳುವ ಒಂದು ಪರಿಣಾಮಕಾರಿ ವಿಧಾನವೆಂದರೆ ಈವೆಂಟ್ ನಿಯೋಗ. ನೀವು ಪೋಷಕ ಅಂಶಕ್ಕೆ ಈವೆಂಟ್ ಕೇಳುಗರನ್ನು ಸೇರಿಸಬಹುದು ಮತ್ತು ಪ್ರತಿ ಮಗುವಿನ ಅಂಶಕ್ಕೆ ಒಂದನ್ನು ಸೇರಿಸುವುದಕ್ಕೆ ವಿರುದ್ಧವಾಗಿ ಈವೆಂಟ್ಗಳನ್ನು "ಬಬಲ್ ಅಪ್" ಮಾಡಲು ಅನುಮತಿಸಬಹುದು. ಕ್ರಿಯಾತ್ಮಕವಾಗಿ ಪರಿಚಯಿಸಲಾದ ಐಟಂಗಳಲ್ಲಿ ನೀವು ಈವೆಂಟ್ಗಳನ್ನು ನಿರ್ವಹಿಸಬೇಕಾದ ಸಂದರ್ಭಗಳಲ್ಲಿ, ಈ ವಿಧಾನವು ತುಂಬಾ ಪರಿಣಾಮಕಾರಿಯಾಗಿದೆ. ಇದು ಕೋಡ್ ಆಡಳಿತವನ್ನು ಸರಾಗಗೊಳಿಸುತ್ತದೆ ಮತ್ತು ಮೆಮೊರಿ ಬಳಕೆಯನ್ನು ಕಡಿಮೆ ಮಾಡುತ್ತದೆ, ವಿಶೇಷವಾಗಿ ಸಾಕಷ್ಟು ಸಂವಾದಾತ್ಮಕ ಘಟಕಗಳನ್ನು ಹೊಂದಿರುವ ಅಪ್ಲಿಕೇಶನ್ಗಳಲ್ಲಿ.
ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್ ಈವೆಂಟ್ಗಳು ಮತ್ತು ಕೇಳುಗರ ಬಗ್ಗೆ ಸಾಮಾನ್ಯ ಪ್ರಶ್ನೆಗಳು
- JavaScript ನಲ್ಲಿ ಈವೆಂಟ್ ಬಬ್ಲಿಂಗ್ ಎಂದರೇನು?
- "ಈವೆಂಟ್ ಬಬ್ಲಿಂಗ್" ಎಂದು ಕರೆಯಲ್ಪಡುವ ವಿದ್ಯಮಾನವು DOM ಶ್ರೇಣಿಯ ಒಳಗಿನ ಅಂಶದಿಂದ ಈವೆಂಟ್ ಹೇಗೆ ಪ್ರಾರಂಭವಾಗುತ್ತದೆ ಮತ್ತು ಹೊರಗಿನ ಘಟಕಗಳಿಗೆ ಮೇಲ್ಮುಖವಾಗಿ ಚಲಿಸುತ್ತದೆ ಎಂಬುದನ್ನು ವಿವರಿಸುತ್ತದೆ.
- ಈವೆಂಟ್ ಪ್ರಚಾರವನ್ನು ನಾನು ಹೇಗೆ ನಿಲ್ಲಿಸಬಹುದು?
- ಬಬ್ಲಿಂಗ್ ಹಂತದಲ್ಲಿ, ಈವೆಂಟ್ ಅನ್ನು ಬಳಸಿಕೊಂಡು ನೀವು ಈವೆಂಟ್ ಅನ್ನು ಮತ್ತಷ್ಟು ಹರಡುವುದನ್ನು ನಿಲ್ಲಿಸಬಹುದು event.stopPropagation() ತಂತ್ರ.
- ನಡುವಿನ ವ್ಯತ್ಯಾಸವೇನು stopPropagation() ಮತ್ತು stopImmediatePropagation()?
- ಈವೆಂಟ್ ಅನ್ನು ಬಬ್ಲಿಂಗ್ ಮಾಡುವುದನ್ನು ತಡೆಯಲಾಗಿದೆ stopPropagation(), ಮತ್ತು ಇದು ಇನ್ನೂ ಇರುವ ಯಾವುದೇ ಕೇಳುಗರೊಂದಿಗೆ ಒಟ್ಟಾಗಿ ಪ್ರದರ್ಶನಗೊಳ್ಳುವುದನ್ನು ತಡೆಯುತ್ತದೆ stopImmediatePropagation().
- JavaScript ನಲ್ಲಿ ಈವೆಂಟ್ ನಿಯೋಗ ಎಂದರೇನು?
- ಈವೆಂಟ್ ಕೇಳುಗರನ್ನು ಪ್ರತಿಯೊಂದು ಮಕ್ಕಳ ಅಂಶಕ್ಕಿಂತ ಹೆಚ್ಚಾಗಿ ಪೋಷಕ ಅಂಶಕ್ಕೆ ಲಗತ್ತಿಸುವ ಮೂಲಕ, ನೀವು ಈವೆಂಟ್ ನಿಯೋಗ ತಂತ್ರವನ್ನು ಬಳಸಬಹುದು. ಮಕ್ಕಳಿಂದ ಏನಾದರೂ "ಗುಳ್ಳೆಗಳು" ಬಂದಾಗ ಪೋಷಕರಿಗೆ ತಿಳಿಸಲಾಗುತ್ತದೆ.
- ಒಂದೇ ಈವೆಂಟ್ಗೆ ನಾನು ಬಹು ಕೇಳುಗರನ್ನು ಸೇರಿಸಬಹುದೇ?
- ವಾಸ್ತವವಾಗಿ, ನೀವು JavaScript ನಲ್ಲಿ ಒಂದೇ ರೀತಿಯ ಈವೆಂಟ್ ಪ್ರಕಾರಕ್ಕೆ ಒಂದಕ್ಕಿಂತ ಹೆಚ್ಚು ಈವೆಂಟ್ ಕೇಳುಗರನ್ನು ಸಂಪರ್ಕಿಸಬಹುದು. ಅವರು ಸೇರಿಸಿದ ಅನುಕ್ರಮದಲ್ಲಿ, ಪ್ರತಿ ಕೇಳುಗರನ್ನು ಕರೆಯಲಾಗುವುದು.
ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್ನಲ್ಲಿ ಈವೆಂಟ್ ಹ್ಯಾಂಡ್ಲಿಂಗ್ನಲ್ಲಿ ಅಂತಿಮ ಆಲೋಚನೆಗಳು
JavaScript ನ ಸ್ವಯಂಚಾಲಿತ ಈವೆಂಟ್ ಗುರುತಿಸುವಿಕೆ ವೈಶಿಷ್ಟ್ಯವು ಸಮಕಾಲೀನ ವೆಬ್ ಅಭಿವೃದ್ಧಿಗೆ ಅತ್ಯಗತ್ಯ. ಕಾರ್ಯದ ಹೆಸರಿನ ಹೊರತಾಗಿಯೂ, ಭಾಷೆಯು ನಿಭಾಯಿಸುತ್ತದೆ ಕೀಡೌನ್ ಮತ್ತು ಈವೆಂಟ್ ಆಬ್ಜೆಕ್ಟ್ ಅನ್ನು ಸ್ವಯಂಚಾಲಿತವಾಗಿ ನೀಡುವ ಮೂಲಕ ಈವೆಂಟ್ಗಳನ್ನು ಸುಲಭವಾಗಿ ಕ್ಲಿಕ್ ಮಾಡಿ.
ಈ ವ್ಯವಸ್ಥೆಯ ಬಳಕೆ ಮತ್ತು ಪ್ರಸರಣ ನಿಯಂತ್ರಣ ಮತ್ತು ಈವೆಂಟ್ ನಿಯೋಗದಂತಹ ಅತ್ಯಾಧುನಿಕ ವಿಧಾನಗಳೊಂದಿಗೆ, ಡೆವಲಪರ್ಗಳು ಸಂಕೀರ್ಣವಾದ ಬಳಕೆದಾರರ ಸಂವಹನಗಳನ್ನು ಪರಿಣಾಮಕಾರಿಯಾಗಿ ನಿರ್ವಹಿಸಬಹುದು. ಈ ತಂತ್ರಗಳ ಬಗ್ಗೆ ತಿಳಿದಿರುವ ಮೂಲಕ, ನೀವು ಹೆಚ್ಚು ಕ್ರಿಯಾತ್ಮಕ, ಸಂವಾದಾತ್ಮಕ ಮತ್ತು ಬಳಕೆದಾರರ ಇನ್ಪುಟ್ಗೆ ಸ್ಪಂದಿಸುವ ವೆಬ್ಸೈಟ್ಗಳನ್ನು ರಚಿಸಬಹುದು.
ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್ ಈವೆಂಟ್ ಹ್ಯಾಂಡ್ಲಿಂಗ್ಗಾಗಿ ಮೂಲಗಳು ಮತ್ತು ಉಲ್ಲೇಖಗಳು
- ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್ನಲ್ಲಿ ವಿವರವಾದ ದಸ್ತಾವೇಜನ್ನು addEventListener ವಿಧಾನ ಮತ್ತು ಈವೆಂಟ್ ವಸ್ತು ನಿರ್ವಹಣೆಯನ್ನು ಇಲ್ಲಿ ಕಾಣಬಹುದು MDN ವೆಬ್ ಡಾಕ್ಸ್ - addEventListener .
- ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್ ಈವೆಂಟ್ ಪ್ರಚಾರ ಮತ್ತು ನಿಯೋಗದ ಆಳವಾದ ಪರಿಶೋಧನೆಗಾಗಿ, ಇದನ್ನು ಉಲ್ಲೇಖಿಸಿ JavaScript.info - ಬಬ್ಲಿಂಗ್ ಮತ್ತು ಕ್ಯಾಪ್ಚರಿಂಗ್ .
- ಜೆಸ್ಟ್ ಅನ್ನು ಬಳಸಿಕೊಂಡು ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್ ಈವೆಂಟ್ ಪರೀಕ್ಷೆಯ ಪ್ರಮುಖ ಪರಿಕಲ್ಪನೆಗಳನ್ನು ಅರ್ಥಮಾಡಿಕೊಳ್ಳುವುದು ಇಲ್ಲಿ ವಿವರಿಸಲಾಗಿದೆ ಜೆಸ್ಟ್ ಡಾಕ್ಯುಮೆಂಟೇಶನ್ .