जावास्क्रिप्ट कोड स्प्लिटिंग: डायनॅमिक लोडिंग आणि परफॉर्मन्स ऑप्टिमायझेशनचा सखोल अभ्यास | MLOG | MLOG ); }

या परिस्थितीत, `HeavyModal` साठीचा कोड फक्त तेव्हाच सर्व्हरवरून मागवला जातो जेव्हा वापरकर्ता प्रथमच "Show Terms and Conditions" बटणावर क्लिक करतो.

३. थर्ड-पार्टी लायब्ररींचे विभाजन (व्हेंडर चन्क्स)

तुमच्या ऍप्लिकेशनचा कोड अनेकदा `node_modules` मधील थर्ड-पार्टी लायब्ररींवर अवलंबून असतो (उदा., React, Lodash, D3.js, Moment.js). या लायब्ररी तुमच्या स्वतःच्या ऍप्लिकेशन कोडपेक्षा खूप कमी वेळा बदलतात. त्यांना एका वेगळ्या "व्हेंडर" चंकमध्ये विभागून, तुम्ही दीर्घकालीन ब्राउझर कॅशिंगचा फायदा घेऊ शकता.

जेव्हा तुम्ही तुमच्या ऍप्लिकेशन कोडमध्ये बदल करता, तेव्हा वापरकर्त्याला फक्त लहान, बदललेला ऍप चंक डाउनलोड करावा लागतो. खूप मोठा असलेला व्हेंडर चंक थेट ब्राउझरच्या कॅशेमधून सर्व्ह केला जाऊ शकतो, ज्यामुळे नंतरचे पेज लोड खूप जलद होतात.

वेबपॅक (`SplitChunksPlugin` सह) आणि विट सारखे आधुनिक बंडलर याबद्दल खूप हुशार आहेत. ते अनेकदा मॉड्यूल वापर आणि आकारावर आधारित व्हेंडर चन्क्स स्वयंचलितपणे तयार करू शकतात, ज्यासाठी कमीतकमी कॉन्फिगरेशनची आवश्यकता असते.

वेबपॅक `splitChunks` कॉन्फिगरेशन उदाहरण:


// webpack.config.js
module.exports = {
  // ... इतर कॉन्फिग्स
  optimization: {
    splitChunks: {
      cacheGroups: {
        vendor: {
          test: /[/]node_modules[/]/,
          name: 'vendors',
          chunks: 'all',
        },
      },
    },
  },
};

परफॉर्मन्स ऑप्टिमायझेशनचा फायदा: परिणामाचे मोजमाप

कोड स्प्लिटिंगची अंमलबजावणी करणे ही केवळ एक सैद्धांतिक बाब नाही; ते ठोस, मोजता येण्याजोगे कार्यक्षमता वाढवते जे थेट वापरकर्ता अनुभव आणि तुमचे कोअर वेब व्हायटल्स सुधारते.

प्रगत तंत्र आणि सर्वोत्तम पद्धती

एकदा तुम्ही मूलभूत गोष्टींमध्ये पारंगत झालात की, तुम्ही अधिक प्रगत तंत्रांनी तुमची लोडिंग स्ट्रॅटेजी आणखी सुधारू शकता.

प्रीफेचिंग आणि प्रीलोडिंग (Prefetching and Preloading)

डायनॅमिक लोडिंग उत्तम आहे, परंतु जेव्हा वापरकर्ता क्रिया सुरू करतो तेव्हा थोडा विलंब होतो, कारण ब्राउझरला नवीन चंक मागवावा लागतो. आपण रिसोर्स हिंट्स वापरून हे कमी करू शकतो:

वेबपॅक सारखे बंडलर तुम्हाला "मॅजिक कमेंट्स" वापरून हे सहजपणे करू देतात:


// जेव्हा हे मॉड्यूल तपासले जाते तेव्हा डॅशबोर्ड कोड प्रीफेच करा
const DashboardPage = lazy(() => 
  import(/* webpackPrefetch: true */ './pages/DashboardPage')
);

बंडल ॲनालायझर्ससह स्प्लिट पॉइंट्स ओळखणे

तुम्हाला कसे कळेल की काय स्प्लिट करायचे? अंदाज लावू नका - विश्लेषण करा! `webpack-bundle-analyzer` किंवा `source-map-explorer` सारखी साधने तुमच्या बंडल्सचे एक इंटरॅक्टिव्ह ट्रीमॅप व्हिज्युअलायझेशन तयार करतात. यामुळे तुम्हाला लगेचच सर्वात मोठे मॉड्यूल्स आणि लायब्ररी ओळखता येतात जे स्प्लिटिंगसाठी उत्तम उमेदवार आहेत.

नेटवर्क वॉटरफॉल्स टाळणे

डायनॅमिक इम्पोर्टची साखळी तयार करण्याबद्दल सावध रहा जिथे एक चंक लोड होण्यापूर्वी तो दुसऱ्याच्या लोडिंगला ट्रिगर करू शकत नाही. शक्य असेल तेव्हा, एकूण लोड वेळ कमी करण्यासाठी अनेक आवश्यक चन्क्सचे लोडिंग समांतर सुरू करा.

निष्कर्ष: कोड स्प्लिटिंग हे अनिवार्य आहे

सर्वोत्तम वेब परफॉर्मन्सच्या शोधात, कोड स्प्लिटिंग एका विशिष्ट ऑप्टिमायझेशनपासून कोणत्याही महत्त्वाच्या वेब ऍप्लिकेशनसाठी एक मानक, आवश्यक प्रथा बनली आहे. मोनोलिथिक वरून ऑन-डिमांड लोडिंग स्ट्रॅटेजीकडे वळून, तुम्ही तुमच्या वापरकर्त्याच्या वेळेचा, डेटाचा आणि डिव्हाइस संसाधनांचा आदर करता.

याचे फायदे स्पष्ट आणि आकर्षक आहेत:

आधुनिक टूलिंग आणि फ्रेमवर्क सपोर्टमुळे, रूट-आधारित आणि कॉम्पोनेंट-आधारित स्प्लिटिंगची अंमलबजावणी करणे कधीही सोपे नव्हते. आताच कृती करण्याची वेळ आली आहे. तुमच्या बंडलचे विश्लेषण करा, तुमच्या सर्वात मोठ्या अवलंबिता आणि कमी वापरल्या जाणाऱ्या रूट्स ओळखा आणि तुमचा पहिला स्प्लिट पॉइंट लागू करा. तुमचे वापरकर्ते - आणि तुमचे परफॉर्मन्स मेट्रिक्स - यासाठी तुमचे आभारी राहतील.