𝗬𝗼𝘂𝗿 𝗣𝗮𝗴𝗲 𝗟𝗼𝗮𝗱𝘀 𝗙𝗮𝘀𝘁 𝗕𝘂𝘁 𝗙𝗲𝗲𝗹𝘀 𝗦𝗹𝗼𝘄? 𝗜𝘁'𝘀 𝗜𝗡𝗣

ನಿಮ್ಮ Lighthouse ವರದಿ ಹಸಿರಾಗಿ ಕಾಣುತ್ತದೆ. LCP ಸರಿಯಾಗಿದೆ. CLS ಸರಿಯಾಗಿದೆ. ಪುಟವು ವೇಗವಾಗಿ ಲೋಡ್ ಆಗುತ್ತದೆ.

ನಂತರ ನಿಮ್ಮ ನೈಜ-ಪ್ರಪಂಚದ (real-world) ಸ್ಕೋರ್‌ಗಳು ಕುಸಿಯುತ್ತವೆ. ಅದಕ್ಕೆ ಕಾರಣವೇನು ಎಂಬುದು ನಿಮಗೆ ತಿಳಿಯುವುದಿಲ್ಲ.

ಸಮಸ್ಯೆ ಬಹುಶಃ INP ಇರಬಹುದು. Interaction to Next Paint ಮಾರ್ಚ್ 2024 ರಲ್ಲಿ FID ಅನ್ನು ಬದಲಿಸಿತು. FID ಕೇವಲ ಮೊದಲ ವಿಳಂಬವನ್ನು (delay) ಮಾತ್ರ ಅಳೆಯುತ್ತಿತ್ತು. INP ಬಳಕೆದಾರರು ನಿಮ್ಮ ಪುಟದಲ್ಲಿರುವಾಗ ನಡೆಯುವ ಪ್ರತಿಯೊಂದು ಸಂವಹನವನ್ನು (interaction) ಅಳೆಯುತ್ತದೆ. ಇದು ಅತ್ಯಂತ ನಿಧಾನವಾದ ಸಂವಹನವನ್ನು ವರದಿ ಮಾಡುತ್ತದೆ.

INP ಎಂಬುದು ಲೋಡಿಂಗ್ ಮೆಟ್ರಿಕ್ ಅಲ್ಲ. ಇದು ರೆಸ್ಪಾನ್ಸಿವ್‌ನೆಸ್ (responsiveness) ಮೆಟ್ರಿಕ್ ಆಗಿದೆ. ಇದು ಒಂದು ಪ್ರಶ್ನೆಗೆ ಉತ್ತರಿಸುತ್ತದೆ: ನೀವು ಕ್ಲಿಕ್ ಮಾಡಿದಾಗ ಅಥವಾ ಟೈಪ್ ಮಾಡಿದಾಗ, ಪರದೆ ಬದಲಾಗಲು ಎಷ್ಟು ಸಮಯ ತೆಗೆದುಕೊಳ್ಳುತ್ತದೆ?

Google ಈ ಕೆಳಗಿನ ವರ್ಗಗಳನ್ನು ಬಳಸುತ್ತದೆ:

ಒಂದು ಸೈಟ್ ಒಂದು ಸೆಕೆಂಡಿನಲ್ಲಿ ಲೋಡ್ ಆಗಬಹುದು ಮತ್ತು ಆದರೂ ವಿಫಲವಾಗಬಹುದು. ವೇಗವಾಗಿ ಲೋಡ್ ಆಗುವುದು ಮತ್ತು ವೇಗವಾಗಿ ಪ್ರತಿಕ್ರಿಯಿಸುವುದು (responding) ಬೇರೆ ಬೇರೆ ಕೆಲಸಗಳು.

Lighthouse ಪರಿಕರಗಳು ಹೆಚ್ಚಾಗಿ INP ಅನ್ನು ಗಮನಿಸುವುದಿಲ್ಲ. Lighthouse ನಿಮ್ಮ ಬಟನ್‌ಗಳನ್ನು ಕ್ಲಿಕ್ ಮಾಡುವುದಿಲ್ಲ. ಅದು ಕೇವಲ ಅಂದಾಜನ್ನು ನೀಡುತ್ತದೆ. ನಿಮ್ಮ ಲ್ಯಾಬ್ ವರದಿ ಹಸಿರಾಗಿರಬಹುದು ಮತ್ತು ಫೀಲ್ಡ್ ಸ್ಕೋರ್ ಕೆಂಪಾಗಿರಬಹುದು.

ನೈಜ ಸಂಖ್ಯೆಯನ್ನು ನೋಡಲು, ಈ ಕೋಡ್ ಬಳಸಿ:

import { onINP } from 'web-vitals';
onINP(function (metric) {
  console.log('INP', metric.value, metric.entries);
});

ಇದು ನಿಧಾನವಾದ ಸಂವಹನ ಮತ್ತು ನಿರ್ದಿಷ್ಟ ಎಲಿಮೆಂಟ್ ಅನ್ನು ಲಾಗ್ ಮಾಡುತ್ತದೆ.

ಮೇನ್ ಥ್ರೆಡ್ (main thread) ಕಾರ್ಯನಿರತವಾಗಿರುವುದರಿಂದ INP ಸಮಸ್ಯೆಗಳು ಸಂಭವಿಸುತ್ತವೆ. ಒಂದು JavaScript ಕಾರ್ಯವು ಮುಗಿಯುವವರೆಗೆ ಬ್ರೌಸರ್ ಪ್ರತಿಕ್ರಿಯೆಯನ್ನು ಪೇಂಟ್ (paint) ಮಾಡಲು ಸಾಧ್ಯವಿಲ್ಲ.

ಸಾಮಾನ್ಯ ಕಾರಣಗಳು:

ದೀರ್ಘ ಕಾರ್ಯಗಳನ್ನು ವಿಭಜಿಸುವ ಮೂಲಕ ಇದನ್ನು ಸರಿಪಡಿಸಿ. ಹಂತಗಳ ನಡುವೆ ಬ್ರೌಸರ್ ಉಸಿರಾಡಲು ಬಿಡಿ:

async function onClick() {
  doUrgentPart(); 
  await yieldToMain(); 
  doExpensivePart(); 
}

ನಿಧಾನವಾದ ಕೆಲಸ ಪ್ರಾರಂಭವಾಗುವ ಮೊದಲು ಬ್ರೌಸರ್ UI ಅನ್ನು ಪೇಂಟ್ ಮಾಡಲು yieldToMain ಬಳಸಿ.

ಇತರ ಪರಿಹಾರಗಳು:

ನಿಮ್ಮ ನೈಜ ಸ್ಕೋರ್‌ಗಳು ಕಡಿಮೆಯಿದ್ದರೆ LCP ಅನ್ನು ನೋಡುವುದನ್ನು ನಿಲ್ಲಿಸಿ. ಬದಲಾಗಿ ನಿಮ್ಮ ಸಂವಹನಗಳನ್ನು (interactions) ಅಳೆಯಿರಿ.

Source: https://dev.to/lamas51/your-page-loads-fast-but-still-feels-slow-its-inp-not-load-time-2gkn