മലയാളം

ചിത്രങ്ങളും ഘടകങ്ങളും ലേസി ലോഡ് ചെയ്യുന്നതിനുള്ള ഒരു സമഗ്രമായ ഗൈഡ്, വെബ്സൈറ്റ് പ്രകടനവും ആഗോള ഉപയോക്താക്കൾക്കുള്ള ഉപയോക്തൃ അനുഭവവും മെച്ചപ്പെടുത്തുന്നു.

ലേസി ലോഡിംഗ്: ചിത്രങ്ങളും ഘടകങ്ങളും ഉപയോഗിച്ച് വെബ് പ്രകടനം ഒപ്റ്റിമൈസ് ചെയ്യുക

ഇന്നത്തെ ഡിജിറ്റൽ ലോകത്ത്, വെബ്സൈറ്റ് പ്രകടനം വളരെ പ്രധാനമാണ്. ഉപയോക്താക്കൾ വേഗതയേറിയതും പ്രതികരണാത്മകവുമായ അനുഭവങ്ങൾ പ്രതീക്ഷിക്കുന്നു, കൂടാതെ അത് നൽകുന്ന വെബ്സൈറ്റുകൾക്ക് സെർച്ച് എഞ്ചിനുകൾ മുൻഗണന നൽകുന്നു. പ്രകടനം മെച്ചപ്പെടുത്തുന്നതിനുള്ള ഒരു പ്രധാന സാങ്കേതികതയാണ് ലേസി ലോഡിംഗ്. ഈ ലേഖനം ചിത്രങ്ങളും ഘടകങ്ങളും ലേസി ലോഡ് ചെയ്യുന്നതിനുള്ള ഒരു സമഗ്രമായ വഴികാട്ടി നൽകുന്നു, ഇത് നിങ്ങളുടെ വെബ്സൈറ്റ് ആഗോള ഉപയോക്താക്കൾക്കായി ഒപ്റ്റിമൈസ് ചെയ്യാൻ സഹായിക്കുന്നു.

എന്താണ് ലേസി ലോഡിംഗ്?

ലേസി ലോഡിംഗ് എന്നത് റിസോഴ്‌സുകൾ (ചിത്രങ്ങൾ, ഐഫ്രെയിമുകൾ, ഘടകങ്ങൾ മുതലായവ) യഥാർത്ഥത്തിൽ ആവശ്യമുള്ളതുവരെ ലോഡ് ചെയ്യുന്നത് വൈകിപ്പിക്കുന്ന ഒരു സാങ്കേതികതയാണ് - സാധാരണയായി, അവ വ്യൂപോർട്ടിലേക്ക് പ്രവേശിക്കാൻ പോകുമ്പോൾ. ഇതിനർത്ഥം, എല്ലാ അസറ്റുകളും തുടക്കത്തിൽ തന്നെ ലോഡ് ചെയ്യുന്നതിനുപകരം, പ്രാരംഭ പേജ് ലോഡിൽ ഉപയോക്താവിന് ദൃശ്യമാകുന്ന റിസോഴ്‌സുകൾ മാത്രമേ ബ്രൗസർ ലോഡ് ചെയ്യുകയുള്ളൂ. ഉപയോക്താവ് പേജിൽ താഴേക്ക് സ്ക്രോൾ ചെയ്യുമ്പോൾ, കൂടുതൽ റിസോഴ്‌സുകൾ ദൃശ്യമാകുമ്പോൾ അവ ലോഡുചെയ്യുന്നു.

ഇതിനെ ഇങ്ങനെ ചിന്തിക്കുക: ഒരു യാത്രയ്ക്ക് പാക്ക് ചെയ്യുന്നത് സങ്കൽപ്പിക്കുക. നിങ്ങളുടെ മുഴുവൻ വസ്ത്രങ്ങളും തുടക്കം മുതൽ വലിച്ചിഴക്കുന്നതിനുപകരം, നിങ്ങൾക്ക് ഉടൻ ആവശ്യമായി വരുമെന്ന് അറിയാവുന്ന വസ്ത്രങ്ങൾ മാത്രം നിങ്ങൾ പാക്ക് ചെയ്യുന്നു. നിങ്ങളുടെ യാത്രയിൽ മുന്നോട്ട് പോകുമ്പോൾ, ആവശ്യമനുസരിച്ച് അധിക ഇനങ്ങൾ നിങ്ങൾ അൺപാക്ക് ചെയ്യുന്നു. വെബ്സൈറ്റുകൾക്കായി ലേസി ലോഡിംഗ് പ്രവർത്തിക്കുന്നത് പ്രധാനമായും ഇങ്ങനെയാണ്.

എന്തുകൊണ്ട് ലേസി ലോഡിംഗ് ഉപയോഗിക്കണം?

ലേസി ലോഡിംഗ് നിരവധി പ്രധാന നേട്ടങ്ങൾ വാഗ്ദാനം ചെയ്യുന്നു:

ചിത്രങ്ങൾ ലേസി ലോഡ് ചെയ്യൽ

ചിത്രങ്ങൾ പലപ്പോഴും ഒരു വെബ്സൈറ്റിലെ ഏറ്റവും വലിയ അസറ്റുകളാണ്, ഇത് അവയെ ലേസി ലോഡിംഗിന് ഏറ്റവും അനുയോജ്യമായ സ്ഥാനാർത്ഥികളാക്കുന്നു. ചിത്രങ്ങൾക്കായി ലേസി ലോഡിംഗ് എങ്ങനെ നടപ്പിലാക്കാമെന്ന് ഇതാ:

നേറ്റീവ് ലേസി ലോഡിംഗ്

ആധുനിക ബ്രൗസറുകൾ (ക്രോം, ഫയർഫോക്സ്, സഫാരി, എഡ്ജ്) ഇപ്പോൾ loading ആട്രിബ്യൂട്ട് ഉപയോഗിച്ച് നേറ്റീവ് ലേസി ലോഡിംഗിനെ പിന്തുണയ്ക്കുന്നു. ചിത്രങ്ങൾ ലേസി ലോഡ് ചെയ്യാനുള്ള ഏറ്റവും ലളിതവും കാര്യക്ഷമവുമായ മാർഗ്ഗമാണിത്.

നേറ്റീവ് ലേസി ലോഡിംഗ് പ്രവർത്തനക്ഷമമാക്കാൻ, നിങ്ങളുടെ <img> ടാഗിലേക്ക് loading="lazy" ആട്രിബ്യൂട്ട് ചേർത്താൽ മതി:

<img src="image.jpg" alt="My Image" loading="lazy">

loading ആട്രിബ്യൂട്ടിന് മൂന്ന് മൂല്യങ്ങൾ ഉണ്ടാകാം:

ഉദാഹരണം:

<img src="london_bridge.jpg" alt="London Bridge" loading="lazy" width="600" height="400">
<img src="tokyo_skyline.jpg" alt="Tokyo Skyline" loading="lazy" width="600" height="400">
<img src="rio_de_janeiro.jpg" alt="Rio de Janeiro" loading="lazy" width="600" height="400">

ഈ ഉദാഹരണത്തിൽ, ലണ്ടൻ ബ്രിഡ്ജ്, ടോക്കിയോ സ്കൈലൈൻ, റിയോ ഡി ജനീറോ എന്നിവയുടെ ചിത്രങ്ങൾ ഉപയോക്താവ് അവയിലേക്ക് സ്ക്രോൾ ചെയ്യുമ്പോൾ മാത്രമേ ലോഡ് ചെയ്യുകയുള്ളൂ. ഇത് വളരെ സഹായകമാണ്, പ്രത്യേകിച്ചും ഒരു ഉപയോക്താവ് പേജിന്റെ ഏറ്റവും താഴെ വരെ സ്ക്രോൾ ചെയ്യുന്നില്ലെങ്കിൽ.

ജാവാസ്ക്രിപ്റ്റ് ഉപയോഗിച്ച് ലേസി ലോഡിംഗ്

നേറ്റീവ് ലേസി ലോഡിംഗിനെ പിന്തുണയ്ക്കാത്ത പഴയ ബ്രൗസറുകൾക്കായി, നിങ്ങൾക്ക് ജാവാസ്ക്രിപ്റ്റ് ലൈബ്രറികൾ ഉപയോഗിക്കാം അല്ലെങ്കിൽ നിങ്ങളുടെ സ്വന്തം കസ്റ്റം സ്ക്രിപ്റ്റ് എഴുതാം. ഇന്റർസെക്ഷൻ ഒബ്സർവർ എപിഐ ഉപയോഗിക്കുന്നതിനുള്ള ഒരു അടിസ്ഥാന ഉദാഹരണം ഇതാ:

const images = document.querySelectorAll('img[data-src]');

const observer = new IntersectionObserver((entries, observer) => {
  entries.forEach(entry => {
    if (entry.isIntersecting) {
      const img = entry.target;
      img.src = img.dataset.src;
      img.removeAttribute('data-src');
      observer.unobserve(img);
    }
  });
});

images.forEach(img => {
  observer.observe(img);
});

വിശദീകരണം:

  1. ഒരു data-src ആട്രിബ്യൂട്ടുള്ള എല്ലാ <img> ഘടകങ്ങളെയും ഞങ്ങൾ തിരഞ്ഞെടുക്കുന്നു.
  2. ഞങ്ങൾ ഒരു പുതിയ IntersectionObserver ഇൻസ്റ്റൻസ് ഉണ്ടാക്കുന്നു. നിരീക്ഷിക്കപ്പെടുന്ന ഒരു ഘടകം വ്യൂപോർട്ടിലേക്ക് പ്രവേശിക്കുകയോ പുറത്തുകടക്കുകയോ ചെയ്യുമ്പോൾ കോൾബാക്ക് ഫംഗ്ഷൻ പ്രവർത്തിക്കുന്നു.
  3. കോൾബാക്ക് ഫംഗ്ഷനകത്ത്, ഞങ്ങൾ entries-ലൂടെ (വ്യൂപോർട്ടുമായി വിഭജിച്ച ഘടകങ്ങൾ) സഞ്ചരിക്കുന്നു.
  4. ഒരു ഘടകം വിഭജിക്കുകയാണെങ്കിൽ (entry.isIntersecting എന്നത് ശരിയാണ്), ഞങ്ങൾ ചിത്രത്തിന്റെ src ആട്രിബ്യൂട്ട് data-src ആട്രിബ്യൂട്ടിന്റെ മൂല്യത്തിലേക്ക് സജ്ജീകരിക്കുന്നു.
  5. അതിനുശേഷം ഞങ്ങൾ data-src ആട്രിബ്യൂട്ട് നീക്കം ചെയ്യുകയും ചിത്രം നിരീക്ഷിക്കുന്നത് നിർത്തുകയും ചെയ്യുന്നു, കാരണം അതിനി ആവശ്യമില്ല.
  6. ഒടുവിൽ, ഞങ്ങൾ observer.observe(img) ഉപയോഗിച്ച് ഓരോ ചിത്രവും നിരീക്ഷിക്കുന്നു.

HTML ഘടന:

<img data-src="image.jpg" alt="My Image">

യഥാർത്ഥ ചിത്രത്തിന്റെ URL src ആട്രിബ്യൂട്ടിന് പകരം data-src ആട്രിബ്യൂട്ടിലാണ് സ്ഥാപിച്ചിരിക്കുന്നതെന്ന് ശ്രദ്ധിക്കുക. ഇത് ചിത്രം ഉടൻ ലോഡ് ചെയ്യുന്നതിൽ നിന്ന് ബ്രൗസറിനെ തടയുന്നു.

ലേസി ലോഡിംഗ് ലൈബ്രറികൾ ഉപയോഗിക്കൽ

നിരവധി ജാവാസ്ക്രിപ്റ്റ് ലൈബ്രറികൾക്ക് ചിത്രങ്ങൾ ലേസി ലോഡ് ചെയ്യുന്ന പ്രക്രിയ ലളിതമാക്കാൻ കഴിയും. ചില പ്രശസ്തമായ ഓപ്ഷനുകൾ ഉൾപ്പെടുന്നു:

ഈ ലൈബ്രറികൾ സാധാരണയായി ലേസി ലോഡിംഗ് ആരംഭിക്കുന്നതിന് ലളിതമായ ഒരു എപിഐ നൽകുകയും പ്ലേസ്‌ഹോൾഡർ ചിത്രങ്ങളും ട്രാൻസിഷൻ ഇഫക്റ്റുകളും പോലുള്ള അധിക സവിശേഷതകൾ വാഗ്ദാനം ചെയ്യുകയും ചെയ്യുന്നു.

ഘടകങ്ങൾ ലേസി ലോഡ് ചെയ്യൽ

ലേസി ലോഡിംഗ് ചിത്രങ്ങൾക്ക് മാത്രമല്ല; ഇത് റിയാക്റ്റ്, ആംഗുലർ, വ്യൂ തുടങ്ങിയ ആധുനിക ജാവാസ്ക്രിപ്റ്റ് ഫ്രെയിംവർക്കുകളിലെ ഘടകങ്ങൾക്കും പ്രയോഗിക്കാൻ കഴിയും. നിരവധി ഘടകങ്ങളുള്ള വലിയ സിംഗിൾ-പേജ് ആപ്ലിക്കേഷനുകൾക്ക് (SPAs) ഇത് പ്രത്യേകിച്ചും ഉപയോഗപ്രദമാണ്.

റിയാക്ടിൽ ലേസി ലോഡിംഗ്

ഘടകങ്ങൾ ലേസി ലോഡ് ചെയ്യുന്നതിനായി റിയാക്റ്റ് ഒരു ബിൽറ്റ്-ഇൻ React.lazy() ഫംഗ്ഷൻ നൽകുന്നു. ഈ ഫംഗ്ഷൻ നിങ്ങളെ ഘടകങ്ങൾ ഡൈനാമിക് ആയി ഇമ്പോർട്ടുചെയ്യാൻ അനുവദിക്കുന്നു, അവ റെൻഡർ ചെയ്യുമ്പോൾ മാത്രം ലോഡുചെയ്യുന്നു.

import React, { Suspense } from 'react';

const MyComponent = React.lazy(() => import('./MyComponent'));

function App() {
  return (
    <Suspense fallback={<div>Loading...</div>}>
      <MyComponent />
    </Suspense>
  );
}

export default App;

വിശദീകരണം:

  1. MyComponent-നെ ഡൈനാമിക് ആയി ഇമ്പോർട്ടുചെയ്യാൻ ഞങ്ങൾ React.lazy() ഉപയോഗിക്കുന്നു. import() ഫംഗ്ഷൻ കമ്പോണന്റ് മൊഡ്യൂളിലേക്ക് പരിഹരിക്കുന്ന ഒരു പ്രോമിസ് നൽകുന്നു.
  2. ഞങ്ങൾ MyComponent-നെ ഒരു <Suspense> കമ്പോണന്റിൽ പൊതിയുന്നു. ഘടകം ലോഡുചെയ്യുമ്പോൾ ഒരു ഫാൾബാക്ക് യുഐ (ഈ സാഹചര്യത്തിൽ, "Loading...") പ്രദർശിപ്പിക്കാൻ Suspense കമ്പോണന്റ് നിങ്ങളെ അനുവദിക്കുന്നു.

ആംഗുലറിൽ ലേസി ലോഡിംഗ്

റൂട്ടിംഗ് കോൺഫിഗറേഷനിലെ loadChildren പ്രോപ്പർട്ടി ഉപയോഗിച്ച് ആംഗുലർ മൊഡ്യൂളുകളുടെ ലേസി ലോഡിംഗിനെ പിന്തുണയ്ക്കുന്നു.

const routes: Routes = [
  {
    path: 'my-module',
    loadChildren: () => import('./my-module/my-module.module').then(m => m.MyModuleModule)
  }
];

വിശദീകരണം:

  1. my-module പാതയ്ക്കായി ഞങ്ങൾ ഒരു റൂട്ട് നിർവചിക്കുന്നു.
  2. MyModuleModule ലേസി ലോഡ് ചെയ്യണമെന്ന് വ്യക്തമാക്കാൻ ഞങ്ങൾ loadChildren പ്രോപ്പർട്ടി ഉപയോഗിക്കുന്നു. import() ഫംഗ്ഷൻ മൊഡ്യൂൾ ഡൈനാമിക് ആയി ഇമ്പോർട്ടുചെയ്യുന്നു.
  3. മൊഡ്യൂൾ ആക്‌സസ് ചെയ്യാനും MyModuleModule ക്ലാസ് തിരികെ നൽകാനും then() രീതി ഉപയോഗിക്കുന്നു.

വ്യൂ.ജെഎസിൽ ലേസി ലോഡിംഗ്

ഡൈനാമിക് ഇമ്പോർട്ടുകളും component ടാഗും ഉപയോഗിച്ച് വ്യൂ.ജെഎസ് ഘടകങ്ങളുടെ ലേസി ലോഡിംഗിനെ പിന്തുണയ്ക്കുന്നു.

<template>
  <component :is="dynamicComponent"></component>
</template>

<script>
export default {
  data() {
    return {
      dynamicComponent: null
    }
  },
  mounted() {
    import('./MyComponent.vue')
      .then(module => {
        this.dynamicComponent = module.default
      })
  }
}
</script>

വിശദീകരണം:

  1. ഒരു ഘടകം ഡൈനാമിക് ആയി റെൻഡർ ചെയ്യുന്നതിന് ഞങ്ങൾ :is ആട്രിബ്യൂട്ടിനൊപ്പം <component> ടാഗ് ഉപയോഗിക്കുന്നു.
  2. mounted ലൈഫ് സൈക്കിൾ ഹുക്കിൽ, MyComponent.vue-നെ ഡൈനാമിക് ആയി ഇമ്പോർട്ടുചെയ്യാൻ ഞങ്ങൾ import() ഫംഗ്ഷൻ ഉപയോഗിക്കുന്നു.
  3. അതിനുശേഷം ഞങ്ങൾ dynamicComponent ഡാറ്റാ പ്രോപ്പർട്ടി മൊഡ്യൂളിന്റെ ഡിഫോൾട്ട് എക്സ്പോർട്ടിലേക്ക് സജ്ജീകരിക്കുന്നു.

ലേസി ലോഡിംഗിനുള്ള മികച്ച രീതികൾ

ലേസി ലോഡിംഗ് ഫലപ്രദമായി നടപ്പിലാക്കുന്നുവെന്ന് ഉറപ്പാക്കാൻ, ഈ മികച്ച രീതികൾ പരിഗണിക്കുക:

അന്താരാഷ്ട്രവൽക്കരണ പരിഗണനകൾ

ഒരു ആഗോള പ്രേക്ഷകർക്കായി ലേസി ലോഡിംഗ് നടപ്പിലാക്കുമ്പോൾ, ഈ അന്താരാഷ്ട്രവൽക്കരണ ഘടകങ്ങൾ പരിഗണിക്കുക:

ഉപസംഹാരം

വെബ്സൈറ്റ് പ്രകടനം ഒപ്റ്റിമൈസ് ചെയ്യുന്നതിനും ഉപയോക്തൃ അനുഭവം മെച്ചപ്പെടുത്തുന്നതിനും ലേസി ലോഡിംഗ് ഒരു ശക്തമായ സാങ്കേതികതയാണ്. സ്ക്രീനിന് പുറത്തുള്ള റിസോഴ്സുകളുടെ ലോഡിംഗ് വൈകിപ്പിക്കുന്നതിലൂടെ, നിങ്ങൾക്ക് പ്രാരംഭ പേജ് ലോഡ് സമയം കുറയ്ക്കാനും ബാൻഡ്‌വിഡ്ത്ത് ഉപഭോഗം കുറയ്ക്കാനും സെർവർ ലോഡ് കുറയ്ക്കാനും കഴിയും. നിങ്ങൾ ഒരു ചെറിയ വ്യക്തിഗത വെബ്സൈറ്റ് നിർമ്മിക്കുകയാണെങ്കിലും അല്ലെങ്കിൽ ഒരു വലിയ എന്റർപ്രൈസ് ആപ്ലിക്കേഷൻ നിർമ്മിക്കുകയാണെങ്കിലും, ലേസി ലോഡിംഗ് നിങ്ങളുടെ പ്രകടന ഒപ്റ്റിമൈസേഷൻ തന്ത്രത്തിന്റെ ഒരു പ്രധാന ഭാഗമായിരിക്കണം. ഈ ലേഖനത്തിൽ പറഞ്ഞിരിക്കുന്ന മികച്ച രീതികൾ പാലിക്കുന്നതിലൂടെയും അന്താരാഷ്ട്രവൽക്കരണ ഘടകങ്ങൾ പരിഗണിക്കുന്നതിലൂടെയും, നിങ്ങളുടെ ലേസി ലോഡിംഗ് നടപ്പാക്കൽ ഫലപ്രദമാണെന്നും ഒരു ആഗോള പ്രേക്ഷകർക്ക് നല്ലൊരു ഉപയോക്തൃ അനുഭവം നൽകുന്നുവെന്നും ഉറപ്പാക്കാൻ നിങ്ങൾക്ക് കഴിയും.

ലേസി ലോഡിംഗ് സ്വീകരിക്കുക, എല്ലാവർക്കുമായി വേഗതയേറിയതും കാര്യക്ഷമവും ഉപയോക്തൃ-സൗഹൃദവുമായ വെബ് അനുഭവം നേടുക.