જાવાસ્ક્રિપ્ટ કોડ સ્પ્લિટિંગ: ડાયનેમિક લોડિંગ અને પર્ફોર્મન્સ ઓપ્ટિમાઇઝેશનમાં ઊંડાણપૂર્વકનો અભ્યાસ | MLOG | MLOG ); }

આ દૃશ્યમાં, `HeavyModal` માટેનો કોડ સર્વર પાસેથી ફક્ત ત્યારે જ વિનંતી કરવામાં આવે છે જ્યારે વપરાશકર્તા પ્રથમ વખત "Show Terms and Conditions" બટન પર ક્લિક કરે છે.

3. થર્ડ-પાર્ટી લાઇબ્રેરીઓનું વિભાજન (વેન્ડર ચંક્સ)

તમારી એપ્લિકેશનનો કોડ ઘણીવાર `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',
        },
      },
    },
  },
};

પર્ફોર્મન્સ ઓપ્ટિમાઇઝેશનનું વળતર: અસરનું માપન

કોડ સ્પ્લિટિંગનો અમલ કરવો એ માત્ર એક સૈદ્ધાંતિક કવાયત નથી; તે મૂર્ત, માપી શકાય તેવા પર્ફોર્મન્સ લાભો પ્રદાન કરે છે જે સીધા વપરાશકર્તા અનુભવ અને તમારા કોર વેબ વાઇટલ્સમાં સુધારો કરે છે.

ઉન્નત તકનીકો અને શ્રેષ્ઠ પ્રયાસો

એકવાર તમે મૂળભૂત બાબતોમાં નિપુણતા મેળવી લો, પછી તમે વધુ ઉન્નત તકનીકો સાથે તમારી લોડિંગ વ્યૂહરચનાને વધુ સુધારી શકો છો.

પ્રીફેચિંગ અને પ્રીલોડિંગ

ડાયનેમિક લોડિંગ ઉત્તમ છે, પરંતુ જ્યારે વપરાશકર્તા ક્રિયાને ટ્રિગર કરે છે ત્યારે તે એક નાનો વિલંબ રજૂ કરે છે, કારણ કે બ્રાઉઝરે નવો ચંક મેળવવો આવશ્યક છે. આપણે રિસોર્સ હિન્ટ્સનો ઉપયોગ કરીને આને ઘટાડી શકીએ છીએ:

વેબપેક જેવા બંડલર્સ તમને "મેજિક કમેન્ટ્સ" વડે આ સરળતાથી કરવા દે છે:


// જ્યારે આ મોડ્યુલનું મૂલ્યાંકન થાય ત્યારે ડેશબોર્ડ કોડને પ્રીફેચ કરો
const DashboardPage = lazy(() => 
  import(/* webpackPrefetch: true */ './pages/DashboardPage')
);

બંડલ એનાલાઈઝર સાથે સ્પ્લિટ પોઈન્ટ્સ ઓળખવા

તમે કેવી રીતે જાણો છો કે શું વિભાજીત કરવું? અનુમાન ન લગાવો—વિશ્લેષણ કરો! `webpack-bundle-analyzer` અથવા `source-map-explorer` જેવા સાધનો તમારા બંડલ્સનું ઇન્ટરેક્ટિવ ટ્રીમેપ વિઝ્યુલાઇઝેશન જનરેટ કરે છે. આ તમને તરત જ સૌથી મોટા મોડ્યુલો અને લાઇબ્રેરીઓને ઓળખવાની મંજૂરી આપે છે જે વિભાજન માટે મુખ્ય ઉમેદવારો છે.

નેટવર્ક વોટરફોલ્સ ટાળવા

ડાયનેમિક ઇમ્પોર્ટ્સની શૃંખલાઓ બનાવવામાં સાવચેત રહો જ્યાં એક ચંક બીજાના લોડિંગને ટ્રિગર કરી શકે તે પહેલાં લોડ થવો આવશ્યક છે. જ્યારે પણ શક્ય હોય, ત્યારે કુલ લોડ સમયને ઘટાડવા માટે બહુવિધ જરૂરી ચંક્સનું લોડિંગ સમાંતર રીતે ટ્રિગર કરો.

નિષ્કર્ષ: કોડ સ્પ્લિટિંગ બિન-વાટાઘાટપાત્ર છે

શ્રેષ્ઠ વેબ પર્ફોર્મન્સની શોધમાં, કોડ સ્પ્લિટિંગ એક વિશિષ્ટ ઓપ્ટિમાઇઝેશનમાંથી વિકસિત થઈને કોઈપણ બિન-તુચ્છ વેબ એપ્લિકેશન માટે એક પ્રમાણભૂત, આવશ્યક પ્રથા બની ગયું છે. મોનોલિથિકથી ઓન-ડિમાન્ડ લોડિંગ વ્યૂહરચનામાં સ્થાનાંતરિત થઈને, તમે તમારા વપરાશકર્તાના સમય, ડેટા અને ઉપકરણ સંસાધનોનો આદર કરો છો.

લાભ સ્પષ્ટ અને આકર્ષક છે:

આધુનિક ટૂલિંગ અને ફ્રેમવર્ક સપોર્ટ સાથે, રૂટ-આધારિત અને કમ્પોનન્ટ-આધારિત સ્પ્લિટિંગનો અમલ કરવો ક્યારેય સરળ ન હતો. કાર્ય કરવાનો સમય હવે છે. તમારા બંડલનું વિશ્લેષણ કરો, તમારી સૌથી મોટી નિર્ભરતાઓ અને તમારા સૌથી ઓછા વપરાયેલા રૂટ્સને ઓળખો, અને તમારા પ્રથમ સ્પ્લિટ પોઇન્ટનો અમલ કરો. તમારા વપરાશકર્તાઓ - અને તમારા પર્ફોર્મન્સ મેટ્રિક્સ - તેના માટે તમારો આભાર માનશે.