നെക്സ്റ്റ്.ജെഎസ്
നെക്സ്റ്റ്.ജെഎസ് ഒരു ഓപ്പൺ സോഴ്സ് വെബ് ഡവലപ്മെന്റ് ഫ്രെയിംവർക്കാണ്, വെർസൽ എന്ന പ്രൈവറ്റ് കമ്പനിയാണ് ഇത് നിർമ്മിച്ചത്. ഇത് റിയാക്ട് അടിസ്ഥാനമാക്കിയുള്ള വെബ് അപ്ലിക്കേഷനുകൾക്ക് സെർവർ-സൈഡ് റെൻഡറിങ്ങും സ്റ്റാറ്റിക് റെൻഡറിങ്ങും നൽകുന്നു. വെബ് നിർമ്മാണത്തിൽ ഉയർന്ന പ്രകടനവും എസ്ഇഒ(SEO) സൗഹൃദവുമായ അനുഭവങ്ങൾ നൽകുന്നതിന് നെക്സ്റ്റ്.ജെഎസ് അനിവാര്യമാണ്. റിയാക്ട് ഡോക്യുമെന്റേഷനിൽ നെക്സ്റ്റ്.ജെഎസ് "റെക്കമെന്റഡ് ടൂൾചെയിൻസ്" ലിസ്റ്റിൽ ഉൾപ്പെടുത്തിയിട്ടുണ്ട്, അത് "നോഡ്.ജെഎസ് ഉപയോഗിച്ച് ഒരു സെർവർ-റെൻഡർ വെബ്സൈറ്റ് നിർമ്മിക്കുന്നതിന്" പ്രോഗ്രാമർമാർക്ക് നൽകുന്ന നിർദേശമാണ്. നെക്സ്റ്റ്.ജെഎസ്, റിയാക്ട് ആധാരമാക്കി പ്രവർത്തിക്കുന്ന ഒരു ഫ്രെയിംവർക്കാണ് എന്നതാണ് ഇതിന്റ സവിശേഷത, കൂടാതെ അതിന്റെ സെർവർ-സൈഡ് റെൻഡറിങ്ങിന്റെ സഹായത്തോടെയാണ് ഉത്തമമായ പ്രകടനവും എസ്ഇഒ പ്രാപ്തിയും ലഭിക്കുന്നത്. നോഡ്.ജെഎസ് അടിസ്ഥാനമാക്കി പ്രവർത്തിക്കുന്ന വെബ്സൈറ്റുകൾക്ക് നെക്സ്റ്റ്.ജെഎസ് വളരെ അനുയോജ്യമായ ഒരു ടൂൾചെയിനാണ്. നെക്സ്റ്റ്.ജെഎസിന്റെ കോപ്പിറൈറ്റും ട്രേഡ്മാർക്കും വെർസൽ കമ്പനി സ്വന്തമാക്കുന്നു[5]. വെർസൽ തന്നെയാണ് നെക്സ്റ്റ്.ജെഎസിന്റെ ഓപ്പൺ സോഴ്സ് വികസനത്തിന് നേതൃത്വം നൽകുകയും ഇത് പരിപാലിക്കുകയും ചെയ്യുന്നത്. വെർസൽ നെക്സ്റ്റ്.ജെഎസിന്റെ വികസനത്തിന് പിന്തുണ നൽകുന്ന പ്രധാന ഗ്രൂപ്പാണ്[6]. പശ്ചാത്തലംനെക്സ്റ്റ്.ജെഎസ് ഒരു റിയാക്ട് ഫ്രെയിംവർക്ക് ആണ്, അത് സെർവർ-സൈഡ് റെണ്ടറിങ്ങും സ്റ്റാറ്റിക് റെണ്ടറിങ്ങും ഉൾപ്പെടെയുള്ള നിരവധി അധിക ഫീച്ചറുകൾ നൽകുന്നു. ഈ ഫ്രെയിംവർക്ക് വെബ് ആപ്ലിക്കേഷനുകൾ കൂടുതൽ വേഗതയിലും കാര്യക്ഷമതയിലും പ്രവർത്തിക്കാൻ സഹായിക്കുന്നു. അതിന്റെ ഫീച്ചറുകൾ ഉപയോഗിച്ച്, ഡെവലപ്പർമാർക്ക് എളുപ്പത്തിൽ ഡൈനാമിക് കണ്ടെന്റ് നിലവാരത്തിൽ സ്റ്റാറ്റിക് പേജുകൾ ജെനറേറ്റ് ചെയ്യാനും, എസ്ഇഒ മെച്ചപ്പെടുത്താനും കഴിയും[7]. റിയാക്ട് ഒരു ജാവാസ്ക്രിപ്റ്റ് ലൈബ്രറിയാണ്, ഇത് വെബ് അപ്ലിക്കേഷനുകൾ നിർമ്മിക്കാൻ ഉപയോഗിക്കുന്നു. ഇത് ക്ലയന്റ് ബ്രൗസറിലെ ജാവാസ്ക്രിപ്റ്റ് ഉപയോഗിച്ച് മികച്ച പ്രകടനം നൽകുന്നു. റിയാക്ട് ഉപയോഗിച്ച് ഡൈനാമിക്, ഇന്ററാക്ടീവ് വെബ് പേജുകൾ എളുപ്പത്തിൽ സൃഷ്ടിക്കാൻ കഴിയും[8]. ജാവാസ്ക്രിപ്റ്റ് മാത്രം ഉപയോഗിക്കുന്ന വെബ് അപ്ലിക്കേഷനുകളിൽ ഡെവലപ്പർമാർക്ക് ചില പ്രശ്നങ്ങൾ കണ്ടിട്ടുണ്ട്. ചില ഉപയോക്താക്കൾക്ക് ജാവാസ്ക്രിപ്റ്റ് ലഭ്യമല്ലെങ്കിൽ അല്ലെങ്കിൽ അത് അപ്രാപ്തമാക്കിയിട്ടുണ്ടെങ്കിൽ, അവർ സൈറ്റ് പൂർണ്ണമായി ആക്സസ് ചെയ്യാൻ കഴിയില്ല. കൂടാതെ, ജാവാസ്ക്രിപ്റ്റിന്റെ കഠിനമായ ഉപയോഗം സുരക്ഷാ പ്രശ്നങ്ങൾ ഉണ്ടാക്കാൻ സാധ്യതയുണ്ട്, ഈ സുരക്ഷ പ്രശ്നങ്ങൾ മുതലെടുത്ത് ആക്രമിക്കാനാകും. ഇത് പേജ് ലോഡിംഗ് സമയത്ത് വലിയ തോതിൽ വേഗം കുറഞ്ഞുപോകുകയും, തന്മൂലം ഉപയോക്തൃ അനുഭവത്തിന് ദോഷം ചെയ്യുന്നു. ജാവാസ്ക്രിപ്റ്റ് ഉപയോഗിച്ച് പേജുകൾ നിർമ്മിക്കുമ്പോൾ, സേർച്ച് എഞ്ചിനുകൾക്ക് പേജിന്റെ ഉള്ളടക്കം മനസിലാക്കാൻ ബുദ്ധിമുട്ടാകാം. കാരണം, സേർച്ച് എഞ്ചിനുകൾക്ക് ജാവാസ്ക്രിപ്റ്റ് റൺ ടൈം സമയത്ത് ഡൈനാമിക് കണ്ടന്റ് ക്രോളിംഗ് ചെയ്യുക എളുപ്പമല്ല (ഡൈനാമിക് കണ്ടന്റ് ക്രോളിംഗ് എന്നത്, വെബ് പേജുകൾ ജാവാസ്ക്രിപ്റ്റ് ഉപയോഗിച്ച് എളുപ്പത്തിൽ മാറ്റപ്പെടുമ്പോൾ, സേർച്ച് എഞ്ചിനുകൾക്ക് ആ മാറ്റങ്ങൾ പൂർണ്ണമായും തിരിച്ചറിയാനും ക്രോൾ ചെയ്യാനും ബുദ്ധിമുട്ടു നേരിടുന്ന പ്രക്രിയയാണ്. ജാവാസ്ക്രിപ്റ്റ് ഉള്ളടക്കം ബ്രൗസർ റൺ ടൈമിൽ ഉണ്ടാക്കുമ്പോൾ, സേർച്ച് എഞ്ചിനുകൾക്ക് നേരിട്ട് ആ ഡൈനാമിക് മാറ്റങ്ങൾ ക്രോളിംഗ് ചെയ്യാൻ സാധ്യമല്ല. ക്രോളിംഗ് (Crawling) എന്നത്, സേർച്ച് എഞ്ചിനുകൾ (ഗൂഗിൾ, ബിംഗ് മുതലായവ) വെബ്സൈറ്റുകളിൽ ഉള്ളടക്കം കണ്ടെത്തി സൂചികപ്പെടുത്തുന്നതിനായി (indexing) ഉപയോഗിക്കുന്ന പ്രക്രിയയാണ്. ഒരു സേർച്ച് എഞ്ചിൻ "ക്രോളർ" എന്ന് അറിയപ്പെടുന്ന സോഫ്റ്റ്വെയർ ബോട്ടുകൾ ഉപയോഗിച്ച് വെബ് പേജുകൾ തുറന്ന് അവയുടെ ഉള്ളടക്കം പരിശോധിച്ച്, സേർച്ച് എഞ്ചിൻ ക്രോളർ വെബ് പേജിന്റെ ഉള്ളടക്കം കണ്ടെത്തി, അത് എഫിഷ്യന്റ് ആയി സൂചികപ്പെടുത്തുന്നു. പിന്നീട്, സൂചികപ്പെടുത്തിയ ഡാറ്റ ഉപയോഗിച്ച് ഉപയോക്താക്കൾക്ക് സേർച്ച് ഫലങ്ങൾ പ്രദാനം ചെയ്യുന്നു). നെക്സ്റ്റ്.ജെഎസ് പോലുള്ള ഫ്രെയിംവർക്ക് സെർവറിൽ വെബ്സൈറ്റ് അല്ലെങ്കിൽ മുഴുവൻ സേർവർ-സൈഡിൽ റെൻഡർ ചെയ്യുന്നതിനാൽ ഈ പ്രശ്നങ്ങൾ മറികടക്കുന്നു. ഇതിലൂടെ പേജ് ലോഡിംഗ് സമയം കുറക്കുകയും, അത് വഴി ഉപഭോക്താവിന് എളുപ്പത്തിൽ യഥാർത്ഥ കോൺടെന്റ് ലഭിക്കും. സെർവർ-സൈഡ് റെൻഡറിംഗ് ഉപയോഗിച്ച്, എസിഇഒ (സെർച്ച് എഞ്ചിൻ ഓപ്റ്റിമൈസേഷൻ) മെച്ചപ്പെടുകയും, ഉപയോക്താക്കൾക്ക് മികച്ച അനുഭവം നൽകുകയും ചെയ്യുന്നു[8][9]. നെക്സ്റ്റ്.ജെഎസ് ഒരു പവർഫുൾ റിയാക്ട് ഫ്രെയിംവർക്കാണ്, ജാവാസ്ക്രിപ്റ്റ് വെബ് ആപ്ലിക്കേഷനുകൾ പ്രോഗ്രാം ചെയ്യാനും ഡെവലപ് ചെയ്യാനും സഹായിക്കുന്നു. ഇത് സെർവർ-സൈഡ് റെൻഡറിങ്ങും സ്റ്റാറ്റിക് സൈറ്റുകളും എളുപ്പത്തിൽ നിർമ്മിക്കാനും ഉപയോഗിക്കാനാവും. നെക്സ്റ്റ്.ജെഎസിന്റെ പ്രധാന ആകർഷണം അതിന്റെ പെഫോമൻസും എസ്ഇഒയ്ക്ക് നൽകുന്ന പ്രാധാന്യവുമാണ്[10]. ഇത് പുതിയ ആപ്ലിക്കേഷനുകൾ ആരംഭിക്കുന്നതിൽ ശുപാർശ ചെയ്യപ്പെടുന്ന നിരവധി "ടൂൾചെയിനുകൾ" ലോഗിൽ ഒന്നാണ്, ഇവയിൽ ഓരോന്നും പൊതുവായ ജോലി കാര്യങ്ങൾ എളുപ്പമാക്കാൻ ഒരു അബ്സ്ട്രാക്ഷൻ ലെയർ പ്രൊവൈഡ് ചെയ്യുന്നു. നെക്സ്റ്റ്.ജെഎസ് പോലുള്ള ടൂൾചെയിനുകൾ ഡെവലപ്പർമാർക്ക് കോഡ് എഴുതുമ്പോൾ പല സാമാന്യ പ്രവർത്തനങ്ങളും ഒഴിവാക്കിക്കൊണ്ട് എളുപ്പത്തിൽ ജോലികളിൽ മുന്നേറാൻ സഹായിക്കുന്നു. ഇതിലൂടെ, പ്രോജക്റ്റുകൾ ഉണ്ടാക്കുമ്പോൾ സമയം ലാഭിക്കുകയും, കൂടുതൽ കാര്യക്ഷമത നേടുകയും ചെയ്യാം[11]. നെക്സ്റ്റ്.ജെഎസ് ഉപയോഗിക്കാൻ നോഡ്.ജെഎസ് ആവശ്യമാണ്, കൂടാതെ അത് എൻപിഎം ഉപയോഗിച്ച് എളുപ്പത്തിൽ പ്രവർത്തിപ്പിക്കാം. എൻപിഎം (Node Package Manager) ഉപയോഗിച്ച് നെക്സ്റ്റ്.ജെഎസ് പ്രോജക്റ്റ് ആരംഭിക്കുന്നത് വളരെ സാധാരണവും എളുപ്പവുമാണ്. ഒരു പുതിയ പ്രോജക്റ്റ് തുടങ്ങാൻ `npx create-next-app` കമാൻഡ് ഉപയോഗിച്ച് തുടങ്ങാവുന്നതാണ്. 2019-ൽ ഗൂഗിൾ നെക്സ്റ്റ്.ജെഎസ് പ്രോജക്ടിനായി 43 പുൾ റെക്വസ്റ്റുകൾ സമർപ്പിച്ചു. ഇതിലൂടെ നെക്സ്റ്റ്.ജെഎസിന്റെ വികസനത്തിനും കൂടുതൽ ഫീച്ചറുകൾക്കുമുള്ള പിന്തുണ നൽകിയിരിക്കുന്നു. ഗൂഗിളിന്റെ ഈ പങ്കാളിത്തം പ്ലാറ്റ്ഫോമിന്റെ പ്രവർത്തനക്ഷമതയും ഉപയോക്തൃ അനുഭവവും മെച്ചപ്പെടുത്തുന്നതിന് സഹായിച്ചു[12]. ഓക്ടോബർ 2024-ൽ, നെക്സ്റ്റ്.ജെഎസ് ഫ്രെയിംവർക്ക് വലിയ വെബ്സൈറ്റുകളിൽ പലതിലും ഉപയോഗിക്കുന്നു, അവയിൽ വാൾമാർട്ട്, ആപ്പിൾ, നൈക്കി, നെറ്റ്ഫ്ലിക്സ്, ടിക്ടോക്, ഉബർ, ലിഫ്റ്റ്, സ്റ്റാർബക്ക്സ്, സ്പോട്ടിഫൈ എന്നിവ ഉൾപ്പെടുന്നു. ഈ വലിയ കമ്പനികൾക്ക് നെക്സ്റ്റ്.ജെഎസ് വെബ്സൈറ്റുകളുടെ പ്രകടനം മെച്ചപ്പെടുത്താനും ദ്രുതഗതിയിലുള്ള ഡെവലപ്മെന്റ് പ്രക്രിയ നടത്താനും സഹായിക്കുന്നു. നെക്സ്റ്റ്.ജെഎസിന്റെ ശക്തിയിലും വിശ്വാസ്യതയിലും വിശ്വാസമുള്ളവർക്ക് ഇത് ഒരു മികച്ച തിരഞ്ഞെടുപ്പാണ്[8][13]. 2020-ൽ, വെർസെൽ കമ്പനി 21 ദശലക്ഷം ഡോളർ സീരിയസ് എ (Series A) ഫണ്ടിംഗ് ഉയർത്തി, സോഫ്റ്റ്വെയറിന്റെ മെച്ചപ്പെടുത്തലുകൾക്ക് പിന്തുണ നൽകാൻ വേണ്ടിയാണിത്. ഈ ഫണ്ടിങ് കമ്പനിക്ക് വിപണിയിൽ കൂടുതൽ മികച്ച ഉൽപ്പന്നങ്ങൾ പരിചയപ്പെടുത്തുന്നതിന് സഹായകമായിരുന്നു. ഈ ഫ്രെയിംവർക്കിന്റെ ആദ്യ നിർമ്മാതാവ് ഗ്വില്ലർമോ റാച്ചാണ്, നിലവിൽ വെർസലിന്റെ സിഇഒ(CEO) ആണ്. പ്രോജക്റ്റിന്റെ മുഖ്യ മെയിന്റനർ ആയി ടിം ന്യൂട്ട്കൻസ് പ്രവർത്തിക്കുന്നു[14]. ഡെവലപ്മെന്റ് ഹിസ്റ്ററി2016 ഒക്ടോബർ 25-ന് ഗിറ്റ്ഹബ്ബിൽ ഒരു ഓപ്പൺ സോഴ്സ് പ്രോജക്റ്റായി നെക്സ്റ്റ്.ജെഎസ് ആദ്യമായി പുറത്തിറങ്ങി[3]. ഇത് ഒരു സിസ്റ്റം ആണ്, ഉപയോഗിക്കാൻ വളരെ എളുപ്പമാണ്, കാരണം അത് സെറ്റ് ചെയ്യേണ്ടതില്ല. എല്ലായിടത്തും ജാവാസ്ക്രിപ്റ്റ് ഉപയോഗിച്ച് പ്രവർത്തിക്കുകയും, സിസ്റ്റം സ്വയം കോഡ് വിഭജിച്ച്, ആവശ്യമായ ഡാറ്റ സ്വീകരിക്കുകയും ചെയ്യും. കൂടാതെ, ഇത് സൈറ്റ് എളുപ്പത്തിൽ ഓപ്പൺ ചെയ്യാനും പ്രവർത്തിപ്പിക്കാനും സഹായിക്കുന്നു[15]. നെക്സ്റ്റ്.ജെഎസ് 2.0 മാർച്ച് 2017-ൽ പ്രഖ്യാപിക്കപ്പെട്ടതോടെ, ചെറിയ വെബ്സൈറ്റുകളിൽ ഉപയോഗിക്കാൻ എളുപ്പമാക്കുന്ന നിരവധി മെച്ചപ്പെടുത്തലുകൾ അവതരിപ്പിച്ചു. ഇത് ബിൽഡ് കാര്യക്ഷമത വർദ്ധിപ്പിക്കുകയും, ഹോട്ട്-മോഡ്യൂൾ റീപ്ലേസ്മെന്റ് ഫീച്ചറിന്റെ സ്കെയിലബിലിറ്റി മെച്ചപ്പെടുത്തുകയും ചെയ്തു(ഹോട്ട്-മോഡ്യൂൾ റീപ്ലേസ്മെന്റ് (Hot Module Replacement, HMR) ഫീച്ചർ, വെബ് ഡെവലപ്മെന്റിൽ ഉപയോഗിക്കുന്ന ഒരു സാങ്കേതികവിദ്യയാണ്. ഇത് ഡെവലപ്മെന്റ് സമയത്ത് വെബ് പേജ് അപ്ഡേറ്റ് ചെയ്യുമ്പോൾ പൂർണമായും റിഫ്രഷ് ചെയ്യേണ്ടതില്ല. പകരം, മാറ്റങ്ങൾ മാത്രമേ അപ്ഡേറ്റ് ആകുകയുള്ളൂ, അതിനാൽ ഡെവലപ്പർക്ക് കൂടുതൽ വേഗത്തിൽ കോഡ് മാറ്റങ്ങൾ പരിശോധിക്കാനും ടെസ്റ്റ് ചെയ്യാനുമാകും. എച്ച്എംആർ വെബ്സൈറ്റ് ലോഡിംഗ് സമയവും ഡെവലപ്മെന്റ് പ്രക്രിയയും തൽക്കാലികമായി മെച്ചപ്പെടുത്തുന്നു)[16]. 2018-ൽ 7.0 പുറത്തിറങ്ങി. ഇത് മെച്ചപ്പെട്ട എറർ ഹാൻഡലിങ്ങും റിയാക്റ്റ് കോൺടക്റ്റ് എപിഐയ്ക്ക് (context API) പിന്തുണയും നൽകി. ഈ പതിപ്പിൽ വെബ്പാക്ക് 4-ലേക്ക് അപ്ഗ്രേഡ് ചെയ്യപ്പെട്ടു[17]. പതിപ്പ് 8.0 2019 ഫെബ്രുവരിയിൽ പുറത്തിറങ്ങി. ഇത് ആപ്ലിക്കേഷനുകളുടെ സെർവറില്ലാത്ത ഡിപ്ലോയ്മെന്റ് പിന്തുണ നൽകിയ ആദ്യ പതിപ്പായിരുന്നു, അതിൽ കോഡ് ലാംബ്ഡ ഫംഗ്ഷനുകളായി വിഭജിച്ച് ആവശ്യത്തിന് പ്രവർത്തിപ്പിക്കാം. ഈ പതിപ്പ് സ്റ്റാറ്റിക് എക്സ്പോർട്ടുകൾക്ക് വേണ്ട സമയവും റിസോഴ്സുകളും കുറച്ചു, പ്രീഫച്ച് പ്രകടനവും മെച്ചപ്പെടുത്തി[18]. പതിപ്പ് 9.3, 2020 മാർച്ചിൽ പ്രഖ്യാപിച്ചു. ഇതിൽ നിരവധി ഓപ്റ്റിമൈസേഷനുകളും, ഗ്ലോബൽ സാസ്, സിഎസ്എസ് മൊഡ്യൂൾ പിന്തുണയും ഉൾപ്പെടുത്തിയിട്ടുണ്ട്[19]. 2020 ജൂലൈ 27-ന് നെക്സ്റ്റ്.ജെഎസ് പതിപ്പ് 9.5 പ്രഖ്യാപിച്ചു. ഇത് ഇൻക്രിമെന്റൽ സ്റ്റാറ്റിക് റീജനറേഷൻ, റീറൈറ്റുകൾ, റിഡയറക്ട് പിന്തുണ എന്നിവ അടങ്ങിയ പുതിയ കഴിവുകൾ കൂടി ചേർത്തു[20]. 2021 ജൂൺ 15-നു നെക്സ്റ്റ്.ജെഎസ് പതിപ്പ് 11 പുറത്തിറങ്ങി, അതിൽ വെബ്പാക്ക് 5-ന് ഉള്ള പിന്തുണ, റിയൽ-ടൈം കൊളാബുറേറ്റ് കോഡിംഗ് ഫംഗ്ഷണാലിറ്റി പ്രിവ്യൂ "നെക്സറ്റ്.ജെഎസ് ലൈവ്" എന്നിവ ഉൾപ്പെടുത്തിയിരുന്നു. "Create React App"-നെ നെക്സറ്റ്.ജെഎസ് അനുയോജ്യമായ രൂപത്തിലേക്ക് സ്വയം പരിവർത്തനം ചെയ്യുന്ന പരീക്ഷണ ഫംഗ്ഷൻ "Create React App Migration" കൂടി പരിചയപ്പെടുത്തി. ഈ പുതിയ അപ്ഡേറ്റുകൾ നെക്സറ്റ്.ജെഎസ് ഉപയോക്താക്കളുടെ അനുഭവം മെച്ചപ്പെടുത്തുന്നതിനും പ്രോഗ്രാമിംഗ് പ്രവർത്തനങ്ങൾ എളുപ്പമാക്കുന്നതിനും സഹായിക്കും[21]. 2021 ഒക്ടോബർ 26-നു നെക്സ്റ്റ്.ജെഎസ് 12 പുറത്തിറങ്ങി, ഇതിൽ റസ്റ്റ് കമ്പൈലർ ചേർക്കുക വഴി കപൈലേഷൻ വേഗത്തിൽ പൂർത്തിയാക്കാമാകുന്നു. എവിഐഫ്(AVIF) പിന്തുണ, എഡ്ജ് ഫംഗ്ഷനുകളും മിഡിൽവെയറും: എഡ്ജ് ഫംഗ്ഷനുകളും മിഡിൽവെയറും, നെറ്റ്വർക്കിന്റെ എഡ്ജ് ലൊക്കേഷനുകളിൽ പ്രവർത്തിക്കുന്ന കോഡുകൾ ആണ്, ഇത് എഫിഷ്യൻസിയും വേഗവും വർദ്ധിപ്പിക്കുന്നു. നേറ്റീവ് ഇഎസ്എം & യുആർഎൽ(URL) ഇമ്പോർട്ടുകൾ: നേറ്റീവ് ഇഎസ്എം, ജാവാസ്ക്രിപ്റ്റിൽ നേരിട്ട് മോഡ്യൂളുകൾ ഉപയോഗിക്കുന്ന സംവിധാനമാണ്, യുആർഎൽ ഇമ്പോർട്ട്സ് വഴി കോഡ് ഫയലുകൾ നേരിട്ട് വെബ്ബിൽ നിന്നു ഇമ്പോർട്ട് ചെയ്യാം. ഇത് ഈ പതിപ്പിൽ ഉൾപ്പെടുത്തിയിട്ടുണ്ട്. ഈ അപ്ഡേറ്റുകൾ നെക്സ്റ്റ്.ജെഎസിനെ കൂടുതൽ കാര്യക്ഷമവും ഫലപ്രദവുമായ ഉപകരണം ആക്കി മാറ്റുന്നു[22]. 2022-ലുള്ള നെക്സ്റ്റ്.ജെഎസ് 13 അപ്ഡേറ്റിൽ പുതിയ ആപ്പ് റൗട്ടർ(App Router) അവതരിപ്പിച്ചു, ഇത് പുതിയ റൂട്ടിംഗ് രീതിയാണ്. ഇതിൽ ലേഔട്ടസ്, റിയാക്ട് സെർവർ കമ്പോണന്റ്സ്(React Server Components), സ്ട്രീമിംഗ്(streaming), പുതിയ ഡാറ്റാ ഫച്ച് ചെയ്യുന്നതിനുള്ള മാർഗങ്ങൾ എന്നിവ ഉൾപ്പെടുന്നു(ഡാറ്റാ ഫച്ച് ചെയ്യന്നതിലൂടെയാണ് വെബ് ആപ്ലിക്കേഷനുകളിൽ ആവശ്യമായ ഡാറ്റാ സെർവറിൽ നിന്നും വാങ്ങുന്നത്. ഇത് മൂലം റിയാക്ട് സെർവർ കമ്പോണന്റ്സ് ഉപയോഗിച്ച്, ഡാറ്റാ സെർവർ സൈഡിൽ പ്രോസസ്സ് ചെയ്ത്, ക്ലയന്റിലേക്ക് കൂടുതൽ കാര്യക്ഷമമായി എത്തിക്കാം). ഈ മാറ്റങ്ങൾ വെബ് ആപ്ലിക്കേഷനുകളുടെ പ്രവർത്തനം മെച്ചപ്പെടുത്തുന്നു. വെർസൽ ടർബോ(Vercel Turbo) എന്ന പുതിയ ടൂൾചെയിൻ അവതരിപ്പിച്ചു. ഇതിൽ വെബ്പാക്കിന് പകരം ടർബോപാക്കും(Turbopack), കൂടാതെ ടർബോറെപ്പോ(Turborepo) എന്ന ഇൻക്രിമെന്റൽ ബിൽഡ് സിസ്റ്റവും ഉൾപ്പെടുന്നു(ഇൻക്രിമെന്റൽ ബിൽഡ് സിസ്റ്റം എന്നത് ഒരു സിസ്റ്റം, പ്രോഗ്രാം, അല്ലെങ്കിൽ പ്രോജക്റ്റ് അപ്ഡേറ്റ് ചെയ്യുമ്പോൾ മാത്രം മാറ്റങ്ങൾ നൽകുകയും അത് വഴി സമയം ലാഭിക്കുന്നതിനുള്ള ഒരു രീതിയാണ്)[23]. നെക്സ്റ്റ്.ജെഎസ് 13.4-ൽ ആപ്പ് റൗട്ടറിന്റെ(App Router) സ്ഥിരം പതിപ്പ് പുറത്തിറക്കിയതോടെ, സോഫ്റ്റ്വെയർ വികസിപ്പിക്കുന്നവർക്ക് സ്മാർട്ട് റൂട്ടിംഗ് സിസ്റ്റം പ്രൊഡക്ഷനിൽ ഉപയോഗിക്കാൻ അനുമതി നൽകി. ഈ പുതിയ സിസ്റ്റം, പേജുകളും എപിഐകളും (API) എളുപ്പത്തിൽ കൈകാര്യം ചെയ്യാനും കൂടുതൽ ഫ്ലെക്സിബിൾ ആയി നാവിഗേഷൻ സജ്ജമാക്കാനും സഹായിക്കുന്നു. ആപ്പ് റൗട്ടർ ഉപയോഗിച്ച്, കോഡിംഗ് വഴി റൂട്ടുകൾ സൃഷ്ടിക്കാനും, ഡയനാമിക് ലൈസിംഗ് ആണെങ്കിൽ, അതിനൊപ്പം ഫോൾഡർ-ബേസ്ഡ് റൂട്ടിംഗ് എളുപ്പത്തിൽ നടത്താനും കഴിയും(ഫോൾഡർ-ബേസ്ഡ് റൂട്ടിംഗ് എന്നത്, പേജ് സൃഷ്ടിക്കാൻ ഫോൾഡറുകൾ ഉപയോഗിക്കുന്ന ഒരു രീതി ആണ്, ഓരോ ഫോൾഡറും യുആർഎൽ പാത്തായി പ്രവർത്തിക്കും. ഇത് കോഡിന്റെ ഓർഗനൈസേഷനും, റൂട്ടിംഗ് സിസ്റ്റത്തിനെ എളുപ്പവും കൂടുതൽ ഫ്ലെക്സിബിളും ആക്കുന്നു)[24]. വെർസലിന്റെ നെക്സ്റ്റ്.ജെഎസ് 14-ൽ എഡ്ജ് റൺടൈം(edge runtime) ഉപയോഗിക്കുന്നത് മൂലം മെമ്മറി മാനേജ്മെന്റിൽ മെച്ചപ്പെടുത്തലുകൾ നടത്താൻ സാധിച്ചു(എഡ്ജ് റൺടൈം എന്നത്, ഉപയോക്താവിന്റെ അടുത്തുള്ള സെർവറുകളിൽ നിന്ന് ഡാറ്റ പ്രോസസ് ചെയ്യുന്നതാണ്. ഇതു കൊണ്ട് ആപ്ലിക്കേഷനുകൾ വേഗത്തിൽ പ്രവർത്തിക്കും. ഇത് മൂലം പ്രതികരണ സമയം കുറയ്ക്കുകയും, വേഗം കൂട്ടുകയും ചെയ്യുന്നു). ഈ മെച്ചപ്പെടുത്തലുകൾ എഡ്ജിൽ മെമ്മറി ഉപഭോഗം കുറച്ച് ഉപയോക്താക്കൾക്കായി പ്രകടനത്തെ മെച്ചപ്പെടുത്തുന്നു. കൂടുതൽ സ്കെയിലബിലിറ്റി ഉറപ്പാക്കാൻ വേണ്ടി വേഗതയും കാര്യക്ഷമതയും ഉപയോഗിച്ച് അഭ്യർത്ഥനകൾ കൈകാര്യം ചെയ്യാൻ ഇത് സഹായിക്കുന്നു[25]. 2024-ൽ വെർസൽ നെക്സ്റ്റ്.ജെഎസ് 15 പുറത്തിറക്കി, അതിൽ നെക്സ്റ്റ്.ജെഎസ് 14-ന്റെ മെച്ചപ്പെടുത്തലുകൾ ചുരുക്കിയിരിക്കുന്നു. ടർബോപാക്കിന്റെ(TurboPack) കാര്യക്ഷമത, റിയാക്ട് 19-ന് ഉള്ള പിന്തുണ, പുതിയ എറർ യുഐ എന്നിവക്ക് ശക്തി നൽകി. പാർഷ്യൽ പ്രീറണ്ടറിങ്, അസിങ്ക് റിക്വസ്റ്റ് എപിഐ, ഫോമുകൾ എളുപ്പത്തിൽ കൈകാര്യം ചെയ്യുക, കാഷിങ് സെമാന്റിക്സ് ഓവർഹോൾ, ഇമേജ്, സ്റ്റാറ്റിക് ജനറേഷൻ മെച്ചപ്പെടുത്തലുകൾ, സെർവർ പ്രവർത്തനങ്ങളും മിഡിൽവെയറും, സെൽഫ് ഹോസ്റ്റിംഗും അതിന്റെ വിന്യാസവും(deployment) പോലുള്ള നൂതന ഫീച്ചറുകളും ആണ് ഉൾപ്പെടുന്നത്[26].
കോഡ് ഉദാഹരണം താഴെകൊടുക്കുന്നു export async function getServerSideProps() {
// അസിങ്ക് API റിക്വസ്റ്റ്
const res = await fetch('https://jsonplaceholder.typicode.com/posts');
const data = await res.json();
return {
props: {
posts: data,
},
};
}
export default function PostsPage({ posts }) {
return (
<div>
{posts.map(post => (
<div key={post.id}>
<h2>{post.title}</h2>
<p>{post.body}</p>
</div>
))}
</div>
);
}
സ്റ്റൈലിംഗും സവിശേഷതകളുംനെക്സ്റ്റ്.ജെഎസ് സിഎസ്എസ്, പ്രീകംപൈൽഡ് എസ്സിഎസ്എസ്(precompiled Scss), സാസ്, സിഎസ്എസ്-ഇൻ-ജെഎസ്(CSS-in-JS), സ്റ്റൈയിൽഡ് ജെഎസ്എക്സ്(styled JSX) എന്നിവ ഉപയോഗിച്ച് സ്റ്റൈലിംഗിനെ പിന്തുണയ്ക്കുന്നു. സിഎസ്എസ്, സാസ്, എസ്സിഎസ്എസ് എന്നിവ ഉപയോഗിച്ച് സാധാരണ സ്റ്റൈലുകൾ എഴുതാമെങ്കിലും, സിഎസ്എസ്-ഇൻ-ജെഎസ്, സ്റ്റൈയിൽഡ് ജെഎസ്എക്സ് എന്നിവ പുതിയ രീതിയിലുള്ള എളുപ്പമുള്ള സ്റ്റൈലിംഗ് രീതികളാണ്. ഇവയുടെ സഹായത്തോടെ, റിയാക്ട് കോമ്പോണന്റുകൾക്കൊപ്പം സ്റ്റൈലുകൾ സജ്ജീകരിക്കുന്നതിനുള്ള ലളിതമായ മാർഗങ്ങൾ ലഭ്യമാണ്[11]. ഇതിൽ ടൈപ്പ്സ്ക്രിപ്റ്റ് പിന്തുണയും സ്മാർട്ട് ബണ്ട്ലിംഗും ഉൾക്കൊണ്ടിരിക്കുന്നു. ഇത് ഡെവലപ്പർമാർക്ക് കോഡിങ്ങ് സമയത്ത് കൂടുതൽ ദ്രുതവും എളുപ്പവുമായ അനുഭവം നൽകുന്നു. സ്മാർട്ട് ബണ്ട്ലിംഗ് കോഡിന്റെ പ്രവർത്തനം മെച്ചപ്പെടുത്തുകയും ചെയ്യുന്നു[27]. ഓപ്പൺ-സോഴ്സ് ട്രാൻസ്പൈലറായ എസ്ഡബ്ല്യുസി(SWC) ബ്രൗസറിന് ഉപയോഗിക്കാൻ സാധിക്കുന്ന ജാവാസ്ക്രിപ്റ്റ് കോഡായി കോഡ് മാറ്റാനും കമ്പൈൽ ചെയ്യാനും ഉപയോഗിക്കുന്നു. ഇത് കോഡിന്റെ പ്രവർത്തനം ദ്രുതമാക്കുകയും മെച്ചപ്പെടുത്തുകയും ചെയ്യുന്നു. എസ്ഡബ്ല്യുസി ഉപയോഗിച്ച് പ്രൊജക്ടുകൾ കൂടുതൽ കാര്യക്ഷമവും മികച്ചതുമായ രീതിയിൽ ബിൽഡ് ചെയ്യാം[28]. വെബ്പാക്ക്, മറ്റൊരു ഓപ്പൺ-സോഴ്സ് ടൂൾ, തുടർന്ന് മൊഡ്യൂളുകൾ ബണ്ടിൽ ചെയ്യാൻ ഉപയോഗിക്കുന്നു. എങ്കിലും, ഇപ്പോൾ ഇതിന് പകരം ടർബോപാക്ക് ഉപയോഗിച്ച് വരുന്നു. ടർബോപാക്ക്, വെബ്പാക്കിന്റെ പരിഷ്കരിച്ച വേർഷനായി, കൂടുതൽ വേഗതയും കാര്യക്ഷമതയും നൽകുന്നു[29]. ഇവയുടെ എല്ലാ ടൂളുകളും ടെർമിനലിൽ npm ഉപയോഗിച്ച് പ്രവർത്തിപ്പിക്കപ്പെടുന്നു. എൻപിഎം (Node Package Manager) ഉപയോക്താക്കൾക്ക് ആവശ്യമായ പാക്കേജുകളും ഡിപെൻഡൻസികളുമടക്കം ഇൻസ്റ്റാൾ ചെയ്യാൻ സഹായിക്കുന്നു. ഇത് ഡെവലപ്പർമാർക്ക് എളുപ്പത്തിൽ പ്രോജക്റ്റുകൾ ബന്ധിപ്പിച്ച് പ്രവർത്തിപ്പിക്കാൻ കഴിയും[12]. നെക്സ്റ്റ്.ജെഎസിന്റെ പ്രധാന സവിശേഷത സെർവർ-സൈഡ് റെണ്ടറിങ്ങ് ഉപയോഗിച്ച് വെബ് ബ്രൗസറുകളുടെ ഭാരം കുറക്കാനും മെച്ചപ്പെട്ട സുരക്ഷയുണ്ടാക്കാനും സാധിക്കുന്നു എന്നതാണ്. ഇത് വെബ് പേജുകൾ എപ്പോഴും വേഗത്തിൽ ലോഡാകുന്നതും ഉപയോക്താക്കൾക്ക് മികച്ച അനുഭവം നൽകുന്നു. സെർവർ-സൈഡ് റെണ്ടറിങ്ങ് ഉപയോക്തൃ വിവരങ്ങൾ വെബ് ബ്രൗസറിൽ നന്നായി സംരക്ഷിച്ച് സുരക്ഷിതമാക്കുന്നു. ആപ്ലിക്കേഷനിലെ ഏതെങ്കിലും ഭാഗം അല്ലെങ്കിൽ എസ്എസ്ആർ (സെർവർ-സൈഡ് റെൻഡറിംഗ്) അനുവദിക്കാൻ കഴിയും. ഇതിലൂടെ മികച്ച ഉള്ളടക്കത്തോടെ വിശാലമായ പേജുകൾ ഒരു പ്രത്യേക രീതിയിൽ സെർവർ-സൈഡ് റെൻഡർ ചെയ്യാൻ കഴിയും. ഇത് ഓപ്റ്റിമൈസ് ചെയ്ത ഫലങ്ങൾ നൽകുകയും പ്രകടനം മെച്ചപ്പെടുത്തുകയും ചെയ്യുന്നു[8]. ഒരു വെബ്സൈറ്റ് ആദ്യമായി സന്ദർശിക്കുന്ന ആളുകൾക്ക് വേണ്ടി, സൈറ്റ് മുഴുവൻ ലോഡാക്കാൻ വേണ്ടിയുള്ള ജോലികൾ കുറയ്ക്കാൻ ഇത് സഹായിക്കും. ഇത് വെബ് ബ്രൗസറിനുള്ള ബുദ്ധിമുട്ട് കുറച്ച്, സൈറ്റ് നൽകുന്ന വിവരങ്ങൾ എളുപ്പത്തിൽ പ്രദർശിപ്പിക്കാൻ സാധിക്കും[9](സെർവർ-സൈഡ് റെൻഡർ (SSR) എന്നത്, വെബ് പേജുകൾ സെർവറിൽ ക്രമീകരിച്ച് റെൻഡർ ചെയ്ത് ബ്രൗസറിലേക്ക് അയക്കുന്ന പ്രക്രിയയാണ്. ഇത് വെബ്സൈറ്റ് ആദ്യം ലോഡുചെയ്യുമ്പോൾ ബ്രൗസറിന് കൃത്യമായ എച്ച്ടിഎംഎൽ പേജുകൾ നൽകുന്നു, ഇതിലൂടെ പേജ് വേഗത്തിൽ കാണാൻ സാധിക്കും. ബ്രൗസറിൽ കൂടുതൽ പ്രോസസ്സിങ് ആവശ്യമില്ലാതാക്കാൻ ഇത് സഹായിക്കുന്നു, അതിനാൽ പേജ് അതിവേഗം ലോഡ് ചെയ്യാൻ കഴിയും). "ഹോട്ട് റീലോഡിംഗ്" ഫീച്ചർ ഉപയോഗിച്ച് മാറ്റങ്ങൾ ഉണ്ടാകുമ്പോൾ അവ കണ്ടെത്തി അനുയോജ്യമായ പേജുകൾ വീണ്ടും റെൻഡർ ചെയ്യുന്നു, അതിനാൽ സെർവർ റീസ്റ്റാർട്ട് ചെയ്യേണ്ട ആവശ്യമില്ല. ഇത് ആപ്ലിക്കേഷൻ കോഡിൽ നടത്തിയ മാറ്റങ്ങൾ വെബ് ബ്രൗസറിൽ ഉടനടി പ്രദർശിപ്പിക്കാൻ സഹായിക്കുന്നു, എങ്കിലും ചില ബ്രൗസറുകളിൽ പേജ് റിഫ്രഷ് ചെയ്യേണ്ടതായി വന്നേക്കാം[8]. ഈ സോഫ്റ്റ്വെയർ ഡെവലപ്പർമാർക്ക് എളുപ്പത്തിൽ പ്രവർത്തിക്കാൻ പേജ് അടിസ്ഥാനമാക്കിയുള്ള റൂട്ടിംഗ് ഉപയോഗിക്കുന്നു, കൂടാതെ പുതിയ റൂട്ടുകൾ സൃഷ്ടിക്കാൻ കഴിയും. മറ്റ് ഫീച്ചറുകൾ ചേർന്നിരിക്കുന്നത് മോഡ്യൂളുകൾക്ക് ലൈവ് ആയി മാറ്റങ്ങൾ വരുത്താൻ കഴിയുന്ന "ഹോട്ട്-മോഡ്യൂൾ റീപ്ലേസ്മെന്റ്", പേജ് തുറക്കാൻ വേണ്ടി അധിക കോഡ് ഒഴിവാക്കുന്ന "ഓട്ടോമാറ്റിക് കോഡ് സ്പ്ലിറ്റിംഗ്", പേജ് എത്ര വേഗത്തിൽ ലോഡ് ചെയ്യാമെന്ന് ഉറപ്പാക്കാൻ "പേജ് പ്രീഫച്ചിംഗ്" എന്നിവ ഉൾപ്പെടുത്തിയിരിക്കുന്നു. ഇതെല്ലാം ചേർന്നാൽ, വെബ്സൈറ്റ് കൂടുതൽ വേഗത്തിൽ പ്രവർത്തിക്കും[8]. നെക്സ്റ്റ്.ജെഎസിൽ "ഇൻക്രിമെന്റൽ സ്റ്റാറ്റിക് റിജെനറേഷൻ" (ISR) എന്നത്, ഒരു വെബ്സൈറ്റ് പേജുകൾ എപ്പോഴെങ്കിലും പുതിയവ ആയി മാറ്റുന്നതിനുള്ള ഒരു രീതിയാണ്. ഇത് പുതിയ മാറ്റങ്ങൾ മാത്രം അപ്ഡേറ്റ് ചെയ്യാൻ കഴിയും, അപ്പോൾ മൊത്തം സൈറ്റ് വീണ്ടും പുതുക്കേണ്ടതില്ല. ഇതിലൂടെ സൈറ്റ് എത്ര വേഗത്തിൽ പ്രവർത്തിക്കും എന്ന കാര്യത്തിൽ മെച്ചം വരുത്താൻ സാധിക്കും[30]. സ്റ്റാറ്റിക് സൈറ്റ് ജനറേഷൻ (SSG) എന്നത് വെബ്സൈറ്റ് നിർമ്മാണത്തിനുള്ള ഒരു പ്രക്രിയയാണ്, ഇവിടെ വെബ്സൈറ്റ് നിർമ്മാണ സമയത്ത് .next ഫോൾഡറിൽ ഒരു കംപൈൽ ചെയ്ത പതിപ്പ് സൃഷ്ടിക്കുന്നു. ഉപയോക്താവ് ഒരു അഭ്യർത്ഥന നടത്തി, പ്രീ-ബിൽഡ് ചെയ്ത സ്റ്റാറ്റിക് എച്ച്ടിഎംഎൽ പേജുകൾ കാഷെ ചെയ്ത് അയച്ചുകൊടുക്കുന്നു. ഇത് വെബ്സൈറ്റ് ലോഡ് സമയം വളരെ വേഗത്തിൽ കുറയ്ക്കുന്നു(കാഷെ (Cache) എന്നത് ഒരു ഡാറ്റയുടെ താൽക്കാലിക സംഭരണ സഞ്ചയമാണ്, ഉപയോക്താവിന്റെ എക്സ്പീരിയൻസ് വേഗത്തിൽ മെച്ചപ്പെടുത്താൻ ഉപയോഗിക്കുന്നു. വെബ്സൈറ്റിൽ, കാഷെ വഴി മുമ്പത്തെ അഭ്യർത്ഥനകളുടെ ഫലം (പേജ്, ഇമേജുകൾ, സ്റ്റൈൽ ഷീറ്റുകൾ, തുടങ്ങിയവ) താൽക്കാലികമായി സൂക്ഷിച്ച് വെച്ചിരിക്കും. ഇത് വെബ്സൈറ്റ് വീണ്ടും ലോഡ് ചെയ്യുമ്പോൾ, ഡാറ്റ വീണ്ടും ലഭ്യമാക്കാനായി സെർവറിനോട് അപേക്ഷിക്കാതെ തന്നെ നേരിട്ട് മറുപടി നൽകുന്നു. കാഷെ ഉപയോഗിച്ച്, വെബ്സൈറ്റ് പ്രവർത്തിക്കുന്നത് വേഗത്തിൽ സാധ്യമാക്കുന്നു, ലോഡ് സമയം കുറയ്ക്കുന്നു, ബാന്റ്വിഡ്ത്തും കുറയ്ക്കുന്നു). എന്നാൽ, ഇത് എല്ലാ വെബ്സൈറ്റുകൾക്ക് അനുയോജ്യമല്ല, പ്രത്യേകിച്ച് ഇന്ററാക്ടീവ് സൈറ്റുകൾക്ക്(ഇന്ററാക്ടീവ് സൈറ്റുകൾ എന്നത് ഉപയോക്താക്കളുടെ പ്രവർത്തനങ്ങൾക്കും ഇൻപുട്ടുകൾക്കും എതിരായ പ്രതികരണങ്ങൾക്കുള്ള ആവശ്യകത കൂടുതലായിരിക്കും. ഈ സൈറ്റുകൾ സ്റ്റാറ്റിക് സൈറ്റുകളോ കാഷെ ചെയ്ത പേജുകളോ പോലെ പ്രവർത്തിക്കാറില്ല. കാരണം, ഇവയുടെ ഉള്ളടക്കം അതിനിടെ പലപ്പോഴും മാറും. ഉദാഹരണത്തിന്, ഫോമുകൾ, ബട്ടണുകൾ, ക്ലിക്കുകൾ, ചാറ്റ് ബോക്സുകൾ എന്നിവ ഉപയോഗിച്ച് ഉപയോക്താവ് നൽകിയ വിവരങ്ങൾ സൈറ്റ് എളുപ്പത്തിൽ സ്വീകരിച്ച് അപ്ഡേറ്റുകൾ ചെയ്യണം. ഈ സൈറ്റുകൾക്ക് ഡൈനാമിക് പ്രോസസ്സ് ആവശ്യമുണ്ട്, അതിനാൽ സൈറ്റ് എല്ലാവിധ ഫീച്ചറുകളും പ്രവർത്തനങ്ങൾ ശരിയായി നടത്താൻ ഇന്ററാക്ഷനുകൾ തുടർച്ചയായി പ്രവർത്തിക്കേണ്ടത് അനിവാര്യമാണ്). എന്നാൽ ഈ സൈറ്റുകൾ കൂടുതലായും ഉപയോക്തൃ ഇൻപുട്ടുകൾ ഉപയോഗിച്ച് കാലാനുസൃതമായി മാറ്റം വരുത്തുന്നു. ഈ സ്വഭാവം സ്റ്റാറ്റിക് സൈറ്റ് ജനറേഷനോട് പൊരുത്തപ്പെടുന്നില്ല, കാരണം കൂടുതൽ ഡൈനാമിക് പ്രവർത്തനങ്ങൾ ആവശ്യമാണ്. അവലംബം
|
Portal di Ensiklopedia Dunia