ಒಂದು ಕ್ಲೀನ್ ಮತ್ತು ದಕ್ಷ ಮೆನು ಸಿಸ್ಟಮ್‌ಗಾಗಿ JavaScript ಅನ್ನು ಆಪ್ಟಿಮೈಜ್ ಮಾಡುವುದು

ಒಂದು ಕ್ಲೀನ್ ಮತ್ತು ದಕ್ಷ ಮೆನು ಸಿಸ್ಟಮ್‌ಗಾಗಿ JavaScript ಅನ್ನು ಆಪ್ಟಿಮೈಜ್ ಮಾಡುವುದು
ಒಂದು ಕ್ಲೀನ್ ಮತ್ತು ದಕ್ಷ ಮೆನು ಸಿಸ್ಟಮ್‌ಗಾಗಿ JavaScript ಅನ್ನು ಆಪ್ಟಿಮೈಜ್ ಮಾಡುವುದು

ನಿಮ್ಮ ಲ್ಯಾಂಡಿಂಗ್ ಪೇಜ್ ಮೆನು ಸಂವಹನವನ್ನು ಸುವ್ಯವಸ್ಥಿತಗೊಳಿಸಲಾಗುತ್ತಿದೆ

ಲ್ಯಾಂಡಿಂಗ್ ಪುಟವನ್ನು ನಿರ್ಮಿಸುವುದು ಅನೇಕ ವಿವರಗಳನ್ನು ಒಳಗೊಂಡಿರುತ್ತದೆ ಮತ್ತು ಅತ್ಯಂತ ಪ್ರಮುಖವಾದ ಅಂಶವೆಂದರೆ ಸುಗಮ ಬಳಕೆದಾರ ಅನುಭವವನ್ನು ಒದಗಿಸುವುದು. ನೀವು ಸ್ಪಂದಿಸುವ ಮೆನುವಿನೊಂದಿಗೆ ಕೆಲಸ ಮಾಡುತ್ತಿದ್ದರೆ, ಆಯ್ಕೆಯನ್ನು ಆರಿಸಿದಾಗ ಅದು ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಮುಚ್ಚುವುದು ಉತ್ತಮ ಉಪಯುಕ್ತತೆಗಾಗಿ ನಿರ್ಣಾಯಕವಾಗಿದೆ.

ಬಳಕೆದಾರರು ಮೆನು ಐಟಂ ಮೇಲೆ ಕ್ಲಿಕ್ ಮಾಡಿದಾಗ ಮುಚ್ಚುವ ಕ್ರಿಯೆಯನ್ನು ನಿರ್ವಹಿಸಲು ನೀವು ಈಗಾಗಲೇ ಕೆಲವು JavaScript ಅನ್ನು ಬರೆದಿರಬಹುದು. ಇದು ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತಿರುವಾಗ, ಕೋಡ್ ಅನ್ನು ಕ್ಲೀನರ್ ಮತ್ತು ಹೆಚ್ಚು ಪರಿಣಾಮಕಾರಿಯಾಗಿ ಮಾಡುವ ಅವಶ್ಯಕತೆಯಿದೆ. ಪುನರಾವರ್ತಿತ ಕೋಡ್ ನಿರ್ವಹಿಸಲು ತೊಡಕಾಗಿರುತ್ತದೆ ಮತ್ತು ದೋಷಗಳಿಗೆ ಗುರಿಯಾಗುತ್ತದೆ.

ಈ ಲೇಖನದಲ್ಲಿ, ನೀವು ಕ್ಲಿಕ್ ಮಾಡಿದ ಮೇಲೆ ಮೆನುವನ್ನು ಮುಚ್ಚುವ ಬಹು ಮೆನು ಐಟಂಗಳನ್ನು ಹೊಂದಿರುವ ಸನ್ನಿವೇಶವನ್ನು ನಾವು ನೋಡುತ್ತೇವೆ. ಪ್ರಸ್ತುತ ಕೋಡ್ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ ಆದರೆ ಪುನರಾವರ್ತಿತ ಮಾದರಿಗಳನ್ನು ಒಳಗೊಂಡಿದೆ. ಈ ಪುನರಾವರ್ತನೆಯನ್ನು ಹೆಚ್ಚು ಸೊಗಸಾದ ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್ ಪರಿಹಾರದೊಂದಿಗೆ ಸರಳಗೊಳಿಸಬಹುದು.

ಒಂದೇ ರೀತಿಯ ಅಂಶಗಳ ಮೂಲಕ ಲೂಪ್ ಮಾಡುವುದು ಅಥವಾ ಈವೆಂಟ್ ನಿಯೋಗವನ್ನು ನಿಯಂತ್ರಿಸುವಂತಹ ಉತ್ತಮ ಅಭ್ಯಾಸಗಳನ್ನು ಬಳಸಿಕೊಂಡು ನೀವು ಈ ಕೋಡ್ ಅನ್ನು ಹೇಗೆ ಕ್ಲೀನರ್ ಮಾಡಬಹುದು ಎಂಬುದನ್ನು ಅನ್ವೇಷಿಸೋಣ. ಈ ವಿಧಾನವು ಓದುವಿಕೆ ಮತ್ತು ಕಾರ್ಯಕ್ಷಮತೆ ಎರಡನ್ನೂ ಹೆಚ್ಚಿಸುತ್ತದೆ.

ಆಜ್ಞೆ ಬಳಕೆಯ ಉದಾಹರಣೆ
querySelectorAll() ನಿರ್ದಿಷ್ಟಪಡಿಸಿದ ಸೆಲೆಕ್ಟರ್‌ಗೆ ಹೊಂದಿಕೆಯಾಗುವ ಎಲ್ಲಾ ಅಂಶಗಳನ್ನು ಆಯ್ಕೆ ಮಾಡಲು ಈ ಆಜ್ಞೆಯನ್ನು ಬಳಸಲಾಗುತ್ತದೆ. ಈ ಸಂದರ್ಭದಲ್ಲಿ, ಇದು .nav-list ಒಳಗೆ ಎಲ್ಲಾ ಆಂಕರ್ () ಟ್ಯಾಗ್‌ಗಳನ್ನು ಹಿಂಪಡೆಯುತ್ತದೆ, ಇದು ನಮಗೆ ಲೂಪ್ ಮಾಡಲು ಮತ್ತು ಪ್ರತಿ ಐಟಂಗೆ ಪ್ರತ್ಯೇಕವಾಗಿ ಈವೆಂಟ್ ಕೇಳುಗರನ್ನು ಸೇರಿಸಲು ಅನುವು ಮಾಡಿಕೊಡುತ್ತದೆ.
forEach() ನೋಡ್‌ಲಿಸ್ಟ್‌ಗಳು ಅಥವಾ ಅರೇಗಳ ಮೇಲೆ ಪುನರಾವರ್ತಿಸಲು ಬಳಸಲಾಗುತ್ತದೆ. ಈ ಸ್ಕ್ರಿಪ್ಟ್‌ನಲ್ಲಿ, forEach() ನಮಗೆ ಆಯ್ಕೆಮಾಡಿದ ಪ್ರತಿಯೊಂದು ಮೆನು ಐಟಂ ಮೂಲಕ ಲೂಪ್ ಮಾಡಲು ಮತ್ತು ಮೆನುವನ್ನು ಮುಚ್ಚಲು ಕ್ಲಿಕ್ ಈವೆಂಟ್ ಅನ್ನು ಲಗತ್ತಿಸಲು ಅನುಮತಿಸುತ್ತದೆ.
addEventListener() ಒಂದು ಅಂಶಕ್ಕೆ ಈವೆಂಟ್ ಹ್ಯಾಂಡ್ಲರ್ ಅನ್ನು ಲಗತ್ತಿಸಲು ಈ ಆಜ್ಞೆಯನ್ನು ಬಳಸಲಾಗುತ್ತದೆ. ಇಲ್ಲಿ, ಇದು ಮೆನು ಐಟಂಗಳಿಗೆ 'ಕ್ಲಿಕ್' ಈವೆಂಟ್ ಅನ್ನು ಲಗತ್ತಿಸುತ್ತದೆ ಆದ್ದರಿಂದ ಅವುಗಳನ್ನು ಕ್ಲಿಕ್ ಮಾಡಿದಾಗ, ಶೋ-ಮೆನು ವರ್ಗವನ್ನು ತೆಗೆದುಹಾಕುವ ಮೂಲಕ ಮೆನು ಮುಚ್ಚುತ್ತದೆ.
remove() ಒಂದು ಅಂಶದಿಂದ ನಿರ್ದಿಷ್ಟ ವರ್ಗವನ್ನು ತೆಗೆದುಹಾಕಲು ಈ ವಿಧಾನವನ್ನು ಬಳಸಲಾಗುತ್ತದೆ. ಈ ಸಂದರ್ಭದಲ್ಲಿ, .nav-list ಅಂಶದಿಂದ ಶೋ-ಮೆನು ವರ್ಗವನ್ನು ತೆಗೆದುಹಾಕುವ ಮೂಲಕ ನ್ಯಾವಿಗೇಷನ್ ಮೆನುವನ್ನು ಮರೆಮಾಡಲು ತೆಗೆದುಹಾಕಿ('ಶೋ-ಮೆನು') ಅನ್ನು ಕರೆಯಲಾಗುತ್ತದೆ.
try...catch ಕೋಡ್‌ನಲ್ಲಿ ವಿನಾಯಿತಿಗಳು ಮತ್ತು ದೋಷಗಳನ್ನು ನಿರ್ವಹಿಸಲು ಬಳಸಲಾಗುತ್ತದೆ. ಮೆನು ಅಂಶಗಳು ಕಂಡುಬರದಿದ್ದರೆ ಅಥವಾ ಸ್ಕ್ರಿಪ್ಟ್ ಎಕ್ಸಿಕ್ಯೂಶನ್ ಸಮಯದಲ್ಲಿ ಯಾವುದೇ ಸಮಸ್ಯೆ ಉಂಟಾದರೆ, ಕಾರ್ಯವನ್ನು ಮುರಿಯುವುದನ್ನು ತಡೆಯಲು ದೋಷವನ್ನು ಹಿಡಿಯಲಾಗುತ್ತದೆ ಮತ್ತು ಲಾಗ್ ಮಾಡಲಾಗಿದೆ ಎಂದು ಇದು ಖಚಿತಪಡಿಸುತ್ತದೆ.
console.error() ಈ ಆಜ್ಞೆಯು ದೋಷ ಸಂದೇಶಗಳನ್ನು ಬ್ರೌಸರ್‌ನ ಕನ್ಸೋಲ್‌ಗೆ ಲಾಗ್ ಮಾಡುತ್ತದೆ. ಕ್ಲೋಸ್‌ಮೆನು() ಕಾರ್ಯವನ್ನು ನಿರ್ವಹಿಸುವಾಗ ಸಂಭವಿಸುವ ಯಾವುದೇ ದೋಷಗಳನ್ನು ಪ್ರದರ್ಶಿಸಲು ಕ್ಯಾಚ್ ಬ್ಲಾಕ್‌ನಲ್ಲಿ ಇದನ್ನು ಬಳಸಲಾಗುತ್ತದೆ.
tagName DOM ನಲ್ಲಿನ ಅಂಶದ ಟ್ಯಾಗ್ ಹೆಸರನ್ನು ಪರಿಶೀಲಿಸಲು ಈ ಆಸ್ತಿಯನ್ನು ಬಳಸಲಾಗುತ್ತದೆ. ಸ್ಕ್ರಿಪ್ಟ್‌ನಲ್ಲಿ, ಕ್ಲಿಕ್ ಮಾಡಿದಾಗ ಆಂಕರ್ ಟ್ಯಾಗ್‌ಗಳು () ಮಾತ್ರ ಮೆನು ಮುಚ್ಚುವಿಕೆಯನ್ನು ಪ್ರಚೋದಿಸುತ್ತದೆ ಎಂದು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಲು ಈವೆಂಟ್ ನಿಯೋಗದಲ್ಲಿ ಇದನ್ನು ಬಳಸಲಾಗುತ್ತದೆ.
contains() ಕ್ಲಾಸ್‌ಲಿಸ್ಟ್ API ಯ ಭಾಗ, ಅಂಶದ ವರ್ಗ ಪಟ್ಟಿಯಲ್ಲಿ ವರ್ಗ ಅಸ್ತಿತ್ವದಲ್ಲಿದೆಯೇ ಎಂದು ಪರಿಶೀಲಿಸುತ್ತದೆ() ಅನ್ನು ಒಳಗೊಂಡಿದೆ. ಘಟಕ ಪರೀಕ್ಷೆಯ ಉದಾಹರಣೆಯಲ್ಲಿ, ಮೆನು ಐಟಂ ಅನ್ನು ಕ್ಲಿಕ್ ಮಾಡಿದ ನಂತರ ಶೋ-ಮೆನು ವರ್ಗವನ್ನು ತೆಗೆದುಹಾಕಲಾಗಿದೆಯೇ ಎಂದು ಪರಿಶೀಲಿಸುತ್ತದೆ.
click() ಈ ಆಜ್ಞೆಯು ಒಂದು ಅಂಶದ ಮೇಲೆ ಬಳಕೆದಾರರ ಕ್ಲಿಕ್ ಅನ್ನು ಅನುಕರಿಸುತ್ತದೆ. ಮೆನು ಐಟಂನಲ್ಲಿ ಪ್ರೋಗ್ರಾಮ್ಯಾಟಿಕ್ ಆಗಿ ಕ್ಲಿಕ್ ಈವೆಂಟ್ ಅನ್ನು ಪ್ರಚೋದಿಸಲು ಮತ್ತು ನಿರೀಕ್ಷೆಯಂತೆ ಮೆನು ಮುಚ್ಚುತ್ತದೆ ಎಂದು ಮೌಲ್ಯೀಕರಿಸಲು ಘಟಕ ಪರೀಕ್ಷೆಯಲ್ಲಿ ಇದನ್ನು ಬಳಸಲಾಗುತ್ತದೆ.

ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್‌ನೊಂದಿಗೆ ಮೆನು ಕಾರ್ಯವನ್ನು ಹೆಚ್ಚಿಸುವುದು

ನಾವು ಅನ್ವೇಷಿಸಿದ ಸ್ಕ್ರಿಪ್ಟ್‌ಗಳ ಪ್ರಾಥಮಿಕ ಗುರಿಯು ಲ್ಯಾಂಡಿಂಗ್ ಪುಟದಲ್ಲಿ ನ್ಯಾವಿಗೇಷನ್ ಮೆನುವಿನ ನಡವಳಿಕೆಯನ್ನು ಸರಳಗೊಳಿಸುವುದು ಮತ್ತು ವರ್ಧಿಸುವುದು. ಆರಂಭದಲ್ಲಿ, ಪರಿಹಾರವು ಪ್ರತಿ ಮೆನು ಐಟಂಗೆ ಕೋಡ್ ಅನ್ನು ಪುನರಾವರ್ತಿಸುವುದನ್ನು ಒಳಗೊಂಡಿರುತ್ತದೆ, ಆದರೆ ಇದು ಅನಗತ್ಯ ಪುನರಾವರ್ತನೆ ಮತ್ತು ಅಸಮರ್ಥ ಕೋಡ್ಗೆ ಕಾರಣವಾಯಿತು. ಕ್ಲೀನರ್, ಹೆಚ್ಚು ಪರಿಣಾಮಕಾರಿ ಪರಿಹಾರಗಳು ಒಂದೇ ರೀತಿಯ ಅಂಶಗಳ ಮೂಲಕ ಲೂಪ್ ಮಾಡುವ JavaScript ನ ಸಾಮರ್ಥ್ಯವನ್ನು ಬಳಸುತ್ತವೆ ಅಥವಾ ಮೆನು ಸಂವಹನಗಳನ್ನು ಚುರುಕಾದ ರೀತಿಯಲ್ಲಿ ನಿರ್ವಹಿಸಲು ಈವೆಂಟ್ ನಿಯೋಗವನ್ನು ಅನ್ವಯಿಸುತ್ತವೆ. ಬಳಸುವ ಮೂಲಕ querySelectorAll ವಿಧಾನ, ನಾವು ಎಲ್ಲಾ ಸಂಬಂಧಿತ ಮೆನು ಐಟಂಗಳನ್ನು ಆಯ್ಕೆ ಮಾಡಬಹುದು ಮತ್ತು ಪುನರಾವರ್ತನೆಯನ್ನು ಕಡಿಮೆ ಮಾಡಬಹುದು.

ನಾವು ಅನ್ವಯಿಸಿದ ಮೊದಲ ಆಪ್ಟಿಮೈಸೇಶನ್‌ಗಳಲ್ಲಿ ಒಂದನ್ನು ಬಳಸುತ್ತಿದ್ದೇವೆ ಪ್ರತಿಯೊಂದಕ್ಕೂ ಎಲ್ಲಾ ಮೆನು ಐಟಂಗಳ ಮೂಲಕ ಪುನರಾವರ್ತಿಸಲು ಮತ್ತು ಪ್ರತಿಯೊಂದಕ್ಕೂ ಕ್ಲಿಕ್ ಈವೆಂಟ್ ಕೇಳುಗರನ್ನು ಲಗತ್ತಿಸಲು. ಯಾವುದೇ ಐಟಂ ಅನ್ನು ಕ್ಲಿಕ್ ಮಾಡಿದಾಗ ಮೆನುವನ್ನು ಮುಚ್ಚಲು ಇದು ಅನುಮತಿಸುತ್ತದೆ. ಪುನರಾವರ್ತಿತ ಈವೆಂಟ್ ಹ್ಯಾಂಡ್ಲರ್‌ಗಳನ್ನು ಒಂದೇ ಮರುಬಳಕೆ ಮಾಡಬಹುದಾದ ಲೂಪ್‌ನೊಂದಿಗೆ ಬದಲಾಯಿಸುವ ಮೂಲಕ ಲೂಪ್ ಹಿಂದಿನ ವಿಧಾನವನ್ನು ಸರಳಗೊಳಿಸುತ್ತದೆ. ಇದು ಕೋಡ್ ಅನ್ನು ನಿರ್ವಹಿಸಲು ಸುಲಭವಾಗುತ್ತದೆ ಮತ್ತು ದೋಷಗಳ ಅಪಾಯವನ್ನು ಕಡಿಮೆ ಮಾಡುತ್ತದೆ. ಭವಿಷ್ಯದ ಮೆನು ಐಟಂಗಳನ್ನು ಹೆಚ್ಚುವರಿ ಕೋಡ್ ಬದಲಾವಣೆಗಳಿಲ್ಲದೆ ಸುಲಭವಾಗಿ ಸೇರಿಸಬಹುದೆಂದು ಇದು ಖಚಿತಪಡಿಸುತ್ತದೆ, ಸ್ಕೇಲೆಬಿಲಿಟಿ ಸುಧಾರಿಸುತ್ತದೆ.

ಆಪ್ಟಿಮೈಸ್ಡ್ ಸ್ಕ್ರಿಪ್ಟ್‌ಗಳಲ್ಲಿ ಬಳಸಲಾಗುವ ಮತ್ತೊಂದು ಪ್ರಮುಖ ವಿಧಾನವಾಗಿದೆ ಈವೆಂಟ್ ನಿಯೋಗ. ಪ್ರತಿಯೊಂದು ಮೆನು ಐಟಂಗೆ ಈವೆಂಟ್ ಕೇಳುಗರನ್ನು ಲಗತ್ತಿಸುವ ಬದಲು, ನಾವು ಕೇಳುವವರನ್ನು ಪೋಷಕ ಧಾರಕಕ್ಕೆ ಲಗತ್ತಿಸಿದ್ದೇವೆ, nav-ಪಟ್ಟಿ. ಈ ರೀತಿಯಾಗಿ, ಮಕ್ಕಳ ಅಂಶದ ಮೇಲೆ ಯಾವುದೇ ಕ್ಲಿಕ್ ಈವೆಂಟ್ (ಮೆನು ಐಟಂನಂತೆ) ಪೋಷಕರು ಪತ್ತೆಹಚ್ಚುತ್ತಾರೆ ಮತ್ತು ಸೂಕ್ತವಾಗಿ ನಿರ್ವಹಿಸುತ್ತಾರೆ. ಈ ವಿಧಾನವು ಹೆಚ್ಚು ಪರಿಣಾಮಕಾರಿಯಾಗಿರುತ್ತದೆ ಏಕೆಂದರೆ ಇದು ರಚಿಸಬೇಕಾದ ಈವೆಂಟ್ ಕೇಳುಗರ ಸಂಖ್ಯೆಯನ್ನು ಕಡಿಮೆ ಮಾಡುತ್ತದೆ, ಪುಟದ ಕಾರ್ಯಕ್ಷಮತೆಯನ್ನು ಹೆಚ್ಚಿಸುತ್ತದೆ, ವಿಶೇಷವಾಗಿ ಹೆಚ್ಚಿನ ಸಂಖ್ಯೆಯ ಅಂಶಗಳೊಂದಿಗೆ ವ್ಯವಹರಿಸುವಾಗ.

ನಾವು ಬಳಸಿಕೊಂಡು ದೋಷ ನಿರ್ವಹಣೆಯನ್ನು ಸಹ ಅಳವಡಿಸಿದ್ದೇವೆ ಪ್ರಯತ್ನಿಸಿ... ಹಿಡಿಯಿರಿ ಬ್ಲಾಕ್ಗಳನ್ನು. DOM ನಲ್ಲಿ ಕಾಣೆಯಾದ ಅಂಶಗಳಂತಹ ಯಾವುದೇ ಸಂಭಾವ್ಯ ಸಮಸ್ಯೆಗಳು, ಮೆನುವಿನ ಕಾರ್ಯವನ್ನು ಮುರಿಯದೆಯೇ ಹಿಡಿಯಲಾಗುತ್ತದೆ ಮತ್ತು ಲಾಗ್ ಮಾಡಲಾಗಿದೆ ಎಂದು ಇದು ಖಚಿತಪಡಿಸುತ್ತದೆ. ಈ ವಿಧಾನವು ಸುಧಾರಿಸುತ್ತದೆ ದೃಢತೆ ಸ್ಕ್ರಿಪ್ಟ್‌ನ ಮತ್ತು ವಿಷಯಗಳು ತಪ್ಪಾದರೆ ಡೀಬಗ್ ಮಾಡಲು ಸಹಾಯ ಮಾಡುತ್ತದೆ. ಒಟ್ಟಾರೆಯಾಗಿ, ಸ್ಕ್ರಿಪ್ಟ್‌ನ ಸುಧಾರಣೆಗಳು ಹೆಚ್ಚು ಮಾಡ್ಯುಲರ್, ಮರುಬಳಕೆ ಮಾಡಬಹುದಾದ ಮತ್ತು ಪರಿಣಾಮಕಾರಿ ಪರಿಹಾರಕ್ಕೆ ಕಾರಣವಾಗುತ್ತದೆ, ಕೋಡ್ ಪುನರಾವರ್ತನೆಯನ್ನು ಕಡಿಮೆ ಮಾಡುತ್ತದೆ ಮತ್ತು ನಿರ್ವಹಣೆಯನ್ನು ಹೆಚ್ಚಿಸುತ್ತದೆ.

ಕ್ಲೀನರ್ ಮತ್ತು ಸಮರ್ಥ ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್ ಮೆನು ಸಂವಹನ

ಕೋಡ್ ಪುನರಾವರ್ತನೆಯನ್ನು ಸರಳಗೊಳಿಸಲು ಮತ್ತು ಕಾರ್ಯಕ್ಷಮತೆಯನ್ನು ಸುಧಾರಿಸಲು ಈವೆಂಟ್ ನಿಯೋಗದೊಂದಿಗೆ ವೆನಿಲ್ಲಾ ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್ ಅನ್ನು ಬಳಸುವುದು.

// Select the parent container holding all menu items
const navList = document.querySelector('.nav-list');

// Add an event listener to the parent using event delegation
navList.addEventListener('click', (event) => {
  if (event.target.tagName === 'A') {
    // Close the menu when any link is clicked
    navList.classList.remove('show-menu');
  }
});

ಮರುಬಳಕೆ ಮಾಡಬಹುದಾದ ಕಾರ್ಯಕ್ಕಾಗಿ JavaScript ಬಳಸಿ ಆಪ್ಟಿಮೈಸ್ಡ್ ಪರಿಹಾರ

ಈ ವಿಧಾನವು ಎಲ್ಲಾ ಮೆನು ಐಟಂಗಳ ಮೇಲೆ ಪುನರಾವರ್ತಿಸಲು ಲೂಪ್ ಅನ್ನು ಬಳಸುತ್ತದೆ, ಈವೆಂಟ್ ನಿಯೋಗವಿಲ್ಲದೆ ಕೋಡ್ ಮರುಬಳಕೆಯನ್ನು ಖಚಿತಪಡಿಸುತ್ತದೆ.

// Select all menu items
const menuItems = document.querySelectorAll('.nav-list a');

// Loop through each menu item
menuItems.forEach(item => {
  item.addEventListener('click', () => {
    // Close the menu on click
    navList.classList.remove('show-menu');
  });
});

ದೋಷ ನಿರ್ವಹಣೆಯೊಂದಿಗೆ ಮಾಡ್ಯುಲರ್ ಮತ್ತು ಮರುಬಳಕೆ ಮಾಡಬಹುದಾದ ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್

ಈ ಪರಿಹಾರವನ್ನು ಮಾಡ್ಯುಲರ್ ರೀತಿಯಲ್ಲಿ ನಿರ್ಮಿಸಲಾಗಿದೆ, ಮರುಬಳಕೆ ಮಾಡಬಹುದಾದ ಕಾರ್ಯದೊಳಗೆ ಕಾರ್ಯವನ್ನು ಆವರಿಸುತ್ತದೆ ಮತ್ತು ದೋಷ ನಿರ್ವಹಣೆ ಸೇರಿದಂತೆ.

// Function to handle menu closure
function closeMenu() {
  try {
    const navList = document.querySelector('.nav-list');
    const menuItems = document.querySelectorAll('.nav-list a');

    if (!navList || !menuItems) {
      throw new Error('Menu elements not found');
    }

    menuItems.forEach(item => {
      item.addEventListener('click', () => {
        navList.classList.remove('show-menu');
      });
    });

  } catch (error) {
    console.error('Error in menu handling:', error);
  }
}

// Call the function
closeMenu();

ಮೆನು ಸಂವಹನಕ್ಕಾಗಿ ಘಟಕ ಪರೀಕ್ಷೆ

ಪ್ರತಿ ಐಟಂ ಅನ್ನು ಕ್ಲಿಕ್ ಮಾಡಿದಾಗ ಅದು ಸರಿಯಾಗಿ ಮುಚ್ಚುತ್ತದೆ ಎಂದು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಲು ಮೆನು ಸಂವಹನವನ್ನು ಪರೀಕ್ಷಿಸಲಾಗುತ್ತಿದೆ.

// Sample unit test using Jest
test('Menu closes on item click', () => {
  document.body.innerHTML = `
    <ul class="nav-list show-menu">`
    <li><a href="#" class="Item">Link1</a></li>`
    <li><a href="#" class="Item">Link2</a></li>`
    </ul>`;

  closeMenu(); // Initialize the event listeners

  const link = document.querySelector('.Item');
  link.click(); // Simulate a click

  expect(document.querySelector('.nav-list').classList.contains('show-menu')).toBe(false);
});

ಮೆನು ಇಂಟರಾಕ್ಷನ್‌ಗಾಗಿ ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್ ಅನ್ನು ಪರಿಷ್ಕರಿಸುವುದು: ಬೇಸಿಕ್ ಇಂಪ್ಲಿಮೆಂಟೇಶನ್‌ನ ಆಚೆಗೆ

ಸ್ಪಂದಿಸುವ ಲ್ಯಾಂಡಿಂಗ್ ಪುಟವನ್ನು ರಚಿಸುವಾಗ, ಬಳಕೆದಾರರಿಗೆ ತಡೆರಹಿತ ನ್ಯಾವಿಗೇಷನ್ ಅನುಭವವನ್ನು ಖಾತ್ರಿಪಡಿಸುವುದು ಒಂದು ಪ್ರಮುಖ ಅಂಶವಾಗಿದೆ. ಈ ಅನುಭವವನ್ನು ಸುಧಾರಿಸಲು ಒಂದು ವಿಧಾನವೆಂದರೆ ಕೋಡ್ ಪುನರಾವರ್ತನೆಯನ್ನು ಕಡಿಮೆ ಮಾಡುವುದು. ಪ್ರತಿ ಮೆನು ಐಟಂಗೆ ಈವೆಂಟ್ ಕೇಳುಗರನ್ನು ಹಸ್ತಚಾಲಿತವಾಗಿ ಲಗತ್ತಿಸುವ ಬದಲು, ಡೆವಲಪರ್‌ಗಳು ಸುಧಾರಿತ ತಂತ್ರಗಳನ್ನು ಅನ್ವೇಷಿಸಬಹುದು ಈವೆಂಟ್ ನಿಯೋಗ. ಇದು ಪೋಷಕ ಅಂಶದ ಮೇಲೆ ಒಂದೇ ಈವೆಂಟ್ ಕೇಳುಗರಿಗೆ ಬಹು ಮಕ್ಕಳ ಅಂಶಗಳನ್ನು ನಿರ್ವಹಿಸಲು ಅನುಮತಿಸುತ್ತದೆ, ಪ್ರಕ್ರಿಯೆಯನ್ನು ಸುಗಮಗೊಳಿಸುತ್ತದೆ. ಹೆಚ್ಚುವರಿಯಾಗಿ, ಮಾಡ್ಯುಲರ್ ಕಾರ್ಯಗಳನ್ನು ನಿಯಂತ್ರಿಸುವುದರಿಂದ ನಿಮ್ಮ ಕೋಡ್ ಅನ್ನು ನಿರ್ವಹಿಸಲು ಮತ್ತು ಭವಿಷ್ಯದಲ್ಲಿ ವಿಸ್ತರಿಸಲು ಸುಲಭವಾಗುತ್ತದೆ ಎಂದು ಖಚಿತಪಡಿಸುತ್ತದೆ.

ಪರಿಗಣಿಸಬೇಕಾದ ಇನ್ನೊಂದು ಅಂಶವೆಂದರೆ ಕಾರ್ಯಕ್ಷಮತೆ ಆಪ್ಟಿಮೈಸೇಶನ್. ದೊಡ್ಡ-ಪ್ರಮಾಣದ ವೆಬ್ ಅಪ್ಲಿಕೇಶನ್‌ಗಳು ಸಾಮಾನ್ಯವಾಗಿ ಅನೇಕ ಈವೆಂಟ್‌ಗಳೊಂದಿಗೆ ವ್ಯವಹರಿಸುತ್ತವೆ ಮತ್ತು ಹಲವಾರು ಈವೆಂಟ್ ಕೇಳುಗರೊಂದಿಗೆ DOM ಅನ್ನು ಓವರ್‌ಲೋಡ್ ಮಾಡುವುದರಿಂದ ವಿಳಂಬವಾಗಬಹುದು ಅಥವಾ ಸೈಟ್ ಅನ್ನು ನಿಧಾನಗೊಳಿಸಬಹುದು. ನಂತಹ ಸಮರ್ಥ ತಂತ್ರಗಳನ್ನು ಬಳಸುವುದರ ಮೂಲಕ querySelectorAll ಎಲ್ಲಾ ಸಂಬಂಧಿತ ಅಂಶಗಳನ್ನು ಒಂದೇ ಬಾರಿಗೆ ಪಡೆದುಕೊಳ್ಳಲು ಮತ್ತು ನಂತರ ಬಳಸಿ forEach ಪುನರಾವರ್ತಿಸಲು, ನಿಮ್ಮ ಸ್ಕ್ರಿಪ್ಟ್‌ನ ಕಾರ್ಯಕ್ಷಮತೆ ಮತ್ತು ಸ್ಕೇಲೆಬಿಲಿಟಿ ಎರಡನ್ನೂ ನೀವು ಸುಧಾರಿಸುತ್ತೀರಿ. ಮೊಬೈಲ್-ಮೊದಲ ಪ್ರತಿಸ್ಪಂದಕ ವಿನ್ಯಾಸಗಳೊಂದಿಗೆ ವ್ಯವಹರಿಸುವಾಗ ಈ ಆಪ್ಟಿಮೈಸೇಶನ್‌ಗಳು ವಿಶೇಷವಾಗಿ ಮುಖ್ಯವಾಗುತ್ತವೆ, ಅಲ್ಲಿ ವೇಗ ಮತ್ತು ದಕ್ಷತೆಯು ಪ್ರಮುಖವಾಗಿರುತ್ತದೆ.

ಒಂದು ಹೆಜ್ಜೆ ಮುಂದೆ ಹೋಗಲು, ಇದರೊಂದಿಗೆ ದೋಷ ನಿರ್ವಹಣೆಯನ್ನು ಪರಿಚಯಿಸಲಾಗುತ್ತಿದೆ try...catch ದೃಢತೆಯನ್ನು ಸುಧಾರಿಸುತ್ತದೆ. ಅನಿರೀಕ್ಷಿತ ವೈಫಲ್ಯಗಳನ್ನು ತಡೆಗಟ್ಟಲು ಮತ್ತು ಬಳಕೆದಾರರ ಸಂವಹನಗಳನ್ನು ಆಕರ್ಷಕವಾಗಿ ನಿರ್ವಹಿಸಲಾಗಿದೆ ಎಂದು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಲು ಇದು ನಿರ್ಣಾಯಕವಾಗಿದೆ. ಮೆನು ಐಟಂ ಕಾಣೆಯಾಗಿದ್ದರೆ ಅಥವಾ DOM ಕ್ರಿಯಾತ್ಮಕವಾಗಿ ಬದಲಾದರೆ, ಈ ದೋಷ-ನಿರ್ವಹಣೆ ಕಾರ್ಯವಿಧಾನಗಳು ಕಾರ್ಯವನ್ನು ಮುರಿಯದೆ ಸಮಸ್ಯೆಗಳನ್ನು ಕ್ಯಾಚ್ ಮತ್ತು ಲಾಗ್ ಮಾಡುತ್ತದೆ. ಈ ಉತ್ತಮ ಅಭ್ಯಾಸಗಳನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸುವುದರಿಂದ ಬಳಕೆದಾರರ ಅನುಭವ ಮತ್ತು ಸೈಟ್ ನಿರ್ವಹಣೆ ಎರಡನ್ನೂ ತೀವ್ರವಾಗಿ ಸುಧಾರಿಸಬಹುದು.

ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್ ಮೆನು ಆಪ್ಟಿಮೈಸೇಶನ್ ಬಗ್ಗೆ ಸಾಮಾನ್ಯವಾಗಿ ಕೇಳಲಾಗುವ ಪ್ರಶ್ನೆಗಳು

  1. JavaScript ನಲ್ಲಿ ಈವೆಂಟ್ ನಿಯೋಗ ಹೇಗೆ ಕೆಲಸ ಮಾಡುತ್ತದೆ?
  2. ಈವೆಂಟ್ ನಿಯೋಗವು ಸಿಂಗಲ್ ಅನ್ನು ಸೇರಿಸಲು ನಿಮಗೆ ಅನುಮತಿಸುತ್ತದೆ addEventListener ತನ್ನ ಮಕ್ಕಳ ಅಂಶಗಳಿಂದ ಈವೆಂಟ್‌ಗಳನ್ನು ನಿಭಾಯಿಸಬಲ್ಲ ಪೋಷಕ ಅಂಶಕ್ಕೆ. ಇದು ಪ್ರತಿ ಮಗುವಿಗೆ ಪ್ರತ್ಯೇಕವಾಗಿ ಕೇಳುಗರನ್ನು ಸೇರಿಸುವ ಅಗತ್ಯವನ್ನು ತಪ್ಪಿಸುತ್ತದೆ.
  3. ಬಳಸುವುದರಿಂದ ಏನು ಪ್ರಯೋಜನ querySelectorAll?
  4. querySelectorAll ಒಂದೇ ಸಮಯದಲ್ಲಿ CSS ಸೆಲೆಕ್ಟರ್‌ಗೆ ಹೊಂದಿಕೆಯಾಗುವ ಎಲ್ಲಾ ಅಂಶಗಳನ್ನು ಆಯ್ಕೆ ಮಾಡಲು ನಿಮಗೆ ಅನುಮತಿಸುತ್ತದೆ, ಮೆನು ಐಟಂಗಳಂತಹ ಅಂಶಗಳ ಗುಂಪುಗಳೊಂದಿಗೆ ವ್ಯವಹರಿಸುವಾಗ ಅದನ್ನು ಹೆಚ್ಚು ಪರಿಣಾಮಕಾರಿಯಾಗಿ ಮಾಡುತ್ತದೆ.
  5. ನಾನು ಲೂಪ್ ಅನ್ನು ಏಕೆ ಬಳಸಬೇಕು forEach ಮೆನು ಐಟಂಗಳೊಂದಿಗೆ?
  6. forEach ಪ್ರತಿ ಮೆನು ಐಟಂ ಮೂಲಕ ಪುನರಾವರ್ತಿಸಲು ಮತ್ತು ಈವೆಂಟ್ ಕೇಳುಗರನ್ನು ಸೇರಿಸುವಂತಹ ಅದೇ ಕ್ರಿಯೆಯನ್ನು ಅನ್ವಯಿಸಲು ನಿಮಗೆ ಅನುಮತಿಸುತ್ತದೆ, ಪ್ರತಿ ಐಟಂಗೆ ಕೋಡ್ ಅನ್ನು ಹಸ್ತಚಾಲಿತವಾಗಿ ಪುನರಾವರ್ತಿಸದೆ.
  7. ಏನು ಮಾಡುತ್ತದೆ classList.remove() ಮೆನು ಸಂದರ್ಭದಲ್ಲಿ ಮಾಡುವುದೇ?
  8. classList.remove() ಒಂದು ಅಂಶದಿಂದ ನಿರ್ದಿಷ್ಟ ವರ್ಗವನ್ನು (ಶೋ-ಮೆನು ನಂತಹ) ತೆಗೆದುಹಾಕುತ್ತದೆ, ಈ ಸಂದರ್ಭದಲ್ಲಿ ಐಟಂ ಅನ್ನು ಕ್ಲಿಕ್ ಮಾಡಿದಾಗ ನ್ಯಾವಿಗೇಷನ್ ಮೆನುವನ್ನು ಮುಚ್ಚುತ್ತದೆ.
  9. ದೋಷ ನಿರ್ವಹಣೆಯು ನನ್ನ ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್ ಕೋಡ್ ಅನ್ನು ಹೇಗೆ ಸುಧಾರಿಸಬಹುದು?
  10. ಬಳಸುತ್ತಿದೆ try...catch ನಿಮ್ಮ ಕೋಡ್‌ನಲ್ಲಿ ಸಂಭವನೀಯ ದೋಷಗಳನ್ನು ನಿರ್ವಹಿಸಲು ನಿಮಗೆ ಅನುಮತಿಸುತ್ತದೆ. ಈ ರೀತಿಯಾಗಿ, ಒಂದು ಅಂಶವು ಕಾಣೆಯಾಗಿದ್ದರೆ ಅಥವಾ ಏನಾದರೂ ವಿಫಲವಾದರೆ, ದೋಷವನ್ನು ಹಿಡಿಯಲಾಗುತ್ತದೆ ಮತ್ತು ಸಂಪೂರ್ಣ ಸ್ಕ್ರಿಪ್ಟ್ ಅನ್ನು ಮುರಿಯದೆ ಲಾಗ್ ಮಾಡಲಾಗುತ್ತದೆ.

ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್ ಪುನರಾವರ್ತನೆಯನ್ನು ಸರಳಗೊಳಿಸುವ ಅಂತಿಮ ಆಲೋಚನೆಗಳು

ಪುನರಾವರ್ತಿತ ಕೋಡ್ ಅನ್ನು ತೆಗೆದುಹಾಕುವ ಮೂಲಕ ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್ ಅನ್ನು ಆಪ್ಟಿಮೈಜ್ ಮಾಡುವುದು ನಿರ್ವಹಣೆ ಮತ್ತು ಕಾರ್ಯಕ್ಷಮತೆಯನ್ನು ಹೆಚ್ಚಿಸುತ್ತದೆ. ಈವೆಂಟ್ ನಿಯೋಗ, ಸಮರ್ಥ DOM ಮ್ಯಾನಿಪ್ಯುಲೇಷನ್ ಮತ್ತು ದೃಢವಾದ ದೋಷ ನಿರ್ವಹಣೆಯಂತಹ ತಂತ್ರಗಳು ಕೋಡ್ ಅನ್ನು ನಿರ್ವಹಿಸಲು ಮತ್ತು ಭವಿಷ್ಯದ ಅಗತ್ಯಗಳಿಗೆ ಹೊಂದಿಕೊಳ್ಳಲು ಸುಲಭಗೊಳಿಸುತ್ತದೆ.

ಈ ಸುಧಾರಣೆಗಳನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸುವ ಮೂಲಕ, ನಿಮ್ಮ ಲ್ಯಾಂಡಿಂಗ್ ಪುಟದ ಮೆನುವು ಸಾಧನಗಳಾದ್ಯಂತ ಸರಾಗವಾಗಿ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ ಎಂದು ನೀವು ಖಚಿತಪಡಿಸುತ್ತೀರಿ. ಮಾಡ್ಯುಲರ್ ಕೋಡ್ ಹೆಚ್ಚು ಸ್ಕೇಲೆಬಲ್ ಮತ್ತು ಹೊಂದಿಕೊಳ್ಳಬಲ್ಲದು, ಉತ್ತಮ ಬಳಕೆದಾರ ಅನುಭವವನ್ನು ಸೃಷ್ಟಿಸುತ್ತದೆ ಮತ್ತು ಭವಿಷ್ಯದ ನವೀಕರಣಗಳಲ್ಲಿ ದೋಷಗಳು ಮತ್ತು ದೋಷಗಳ ಸಂಭಾವ್ಯತೆಯನ್ನು ಕಡಿಮೆ ಮಾಡುತ್ತದೆ.

JavaScript ಆಪ್ಟಿಮೈಸೇಶನ್‌ಗಾಗಿ ಉಲ್ಲೇಖಗಳು ಮತ್ತು ಸಂಪನ್ಮೂಲಗಳು
  1. ಕಡಿಮೆ ಮಾಡಲು ಉತ್ತಮ ಅಭ್ಯಾಸಗಳ ವಿವರಗಳನ್ನು ಒದಗಿಸುತ್ತದೆ ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್ ಪುನರಾವರ್ತನೆ ಮತ್ತು ಕಾರ್ಯಕ್ಷಮತೆಯನ್ನು ಸುಧಾರಿಸುವುದು: MDN ವೆಬ್ ಡಾಕ್ಸ್ - ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್ ಈವೆಂಟ್‌ಗಳು
  2. ಸಮರ್ಥ DOM ಮ್ಯಾನಿಪ್ಯುಲೇಷನ್ ತಂತ್ರಗಳು ಮತ್ತು JavaScript ನಲ್ಲಿ ಈವೆಂಟ್ ನಿರ್ವಹಣೆಯ ಮೂಲ: JavaScript.info - ಈವೆಂಟ್ ನಿಯೋಗ
  3. ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್‌ನ ಸಮಗ್ರ ವಿವರಣೆ ಪ್ರಯತ್ನಿಸಿ... ಹಿಡಿಯಿರಿ ವೆಬ್ ಅಭಿವೃದ್ಧಿಯಲ್ಲಿ ದೋಷ ನಿರ್ವಹಣೆಗಾಗಿ: MDN ವೆಬ್ ಡಾಕ್ಸ್ - ಪ್ರಯತ್ನಿಸಿ... ಹಿಡಿಯಿರಿ