നിങ്ങളുടെ വെബ് ആപ്ലിക്കേഷനുകളിൽ തടസ്സമില്ലാത്തതും പുനരാരംഭിക്കാൻ കഴിയുന്നതുമായ ഡൗൺലോഡുകൾ സാധ്യമാക്കുക. നെറ്റ്വർക്ക് തടസ്സങ്ങൾക്കിടയിലും വലിയ ഫയലുകൾ കൈമാറുന്നതിന് ബാക്ക്ഗ്രൗണ്ട് ഫെച്ച് API, സർവീസ് വർക്കറുകൾ, പ്രായോഗിക വഴികൾ എന്നിവ ഈ ഗൈഡ് വിശദീകരിക്കുന്നു.
ഫ്രണ്ട്എൻഡ് ബാക്ക്ഗ്രൗണ്ട് ഫെച്ചിൽ വൈദഗ്ദ്ധ്യം നേടാം: തടസ്സമില്ലാത്തതും പുനരാരംഭിക്കാവുന്നതുമായ ഡൗൺലോഡുകൾ നിർമ്മിക്കാം
നമ്മൾ ജീവിക്കുന്ന ഈ ലോകം ഡിജിറ്റലായി കൂടുതൽ ബന്ധപ്പെട്ടിരിക്കുന്നു. വെബ് ഇപ്പോൾ സ്റ്റാറ്റിക് ഡോക്യുമെന്റുകൾക്കുള്ള ഒരിടം മാത്രമല്ല. ഹൈ-ഡെഫനിഷൻ വീഡിയോ കണ്ടൻ്റ് മുതൽ സങ്കീർണ്ണമായ ബിസിനസ്സ് സോഫ്റ്റ്വെയറുകളും ഇമ്മേഴ്സീവ് ഗെയിമുകളും വരെ നൽകുന്ന മികച്ചതും ഇൻ്ററാക്ടീവുമായ ആപ്ലിക്കേഷനുകൾക്കുള്ള ഒരു പ്ലാറ്റ്ഫോമാണിത്. ഈ പരിണാമം ലോകമെമ്പാടുമുള്ള ഡെവലപ്പർമാർ നേരിടേണ്ട ഒരു പ്രധാന വെല്ലുവിളി ഉയർത്തുന്നു: പലപ്പോഴും അസ്ഥിരമായ നെറ്റ്വർക്കുകളിലൂടെ വലിയ ഫയലുകൾ വിശ്വസനീയമായി കൈമാറുക എന്നത്. സോളിലെ ഒരു ട്രെയിൻ യാത്രക്കാരനോ, തെക്കേ അമേരിക്കയിലെ ഒരു ഗ്രാമപ്രദേശത്തെ വിദ്യാർത്ഥിയോ, ദുബായിലെ മോശം വൈ-ഫൈ കണക്ഷനുള്ള ഒരു ഹോട്ടലിലെ പ്രൊഫഷണലോ ആകട്ടെ, ഒരു കണക്ഷൻ നഷ്ടപ്പെടുന്നത് ഡൗൺലോഡ് പരാജയപ്പെടാനും, ഉപയോക്താവിന് നിരാശയുണ്ടാക്കാനും, ഒരു മോശം അനുഭവത്തിനും കാരണമാകും. ഈ സാഹചര്യത്തിലാണ് ബാക്ക്ഗ്രൗണ്ട് ഫെച്ച് API ഒരു വിപ്ലവകരമായ പരിഹാരമായി മാറുന്നത്.
`fetch()`, `XMLHttpRequest` പോലുള്ള പരമ്പരാഗത രീതികൾ ശക്തമാണെങ്കിലും, അവ ഒരു വെബ് പേജിൻ്റെ ലൈഫ് സൈക്കിളുമായി ആന്തരികമായി ബന്ധപ്പെട്ടിരിക്കുന്നു. ഒരു ഉപയോക്താവ് ടാബ് അടയ്ക്കുകയോ മറ്റെവിടെയെങ്കിലും പോവുകയോ ചെയ്താൽ, ഡൗൺലോഡ് അവസാനിക്കും. പേജിൻ്റെ സെഷനെ അതിജീവിക്കാൻ ഇതിന് ബിൽറ്റ്-ഇൻ സംവിധാനമില്ല. ബാക്ക്ഗ്രൗണ്ട് ഫെച്ച് API ഈ മാതൃകയെ അടിസ്ഥാനപരമായി മാറ്റുന്നു. വലിയ ഡൗൺലോഡ് (അപ്ലോഡ്) ടാസ്ക്കുകൾ ബ്രൗസറിന് തന്നെ കൈമാറാൻ ഇത് ഒരു വെബ് ആപ്ലിക്കേഷനെ അനുവദിക്കുന്നു. ബ്രൗസർ പിന്നീട് ഈ കൈമാറ്റം ഏതെങ്കിലും ഒരൊറ്റ ടാബിൽ നിന്ന് സ്വതന്ത്രമായി പശ്ചാത്തലത്തിൽ കൈകാര്യം ചെയ്യുന്നു. ഇതിനർത്ഥം, ഉപയോക്താവ് പേജ് അടച്ചാലും ഡൗൺലോഡുകൾ തുടരാം, അതിലും പ്രധാനമായി, നെറ്റ്വർക്ക് കണക്റ്റിവിറ്റി മാറുമ്പോൾ അവ യാന്ത്രികമായി താൽക്കാലികമായി നിർത്താനും പുനരാരംഭിക്കാനും കഴിയും. വെബിൽ യഥാർത്ഥത്തിൽ തടസ്സമില്ലാത്ത, നേറ്റീവ് പോലുള്ള ഡൗൺലോഡ് അനുഭവങ്ങൾ നിർമ്മിക്കുന്നതിനുള്ള താക്കോലാണിത്.
എന്താണ് ബാക്ക്ഗ്രൗണ്ട് ഫെച്ച് API? ഒരു ആഗോള കാഴ്ചപ്പാട്
ചുരുക്കത്തിൽ, ബാക്ക്ഗ്രൗണ്ട് ഫെച്ച് API എന്നത് വലിയ നെറ്റ്വർക്ക് അഭ്യർത്ഥനകൾ ബ്രൗസറിൻ്റെ എഞ്ചിനിലേക്ക് ഏൽപ്പിക്കുന്നതിനായി രൂപകൽപ്പന ചെയ്ത ഒരു ആധുനിക വെബ് സ്റ്റാൻഡേർഡാണ്. ആപ്ലിക്കേഷൻ്റെ വിസിബിൾ വിൻഡോയുടെ ലൈഫ് ടൈമിനപ്പുറം നിലനിൽക്കുന്ന ഡൗൺലോഡുകളോ അപ്ലോഡുകളോ ആരംഭിക്കാൻ ഇത് ഡെവലപ്പർമാരെ പ്രാപ്തരാക്കുന്നു. ഇത് ഒരു ചെറിയ സൗകര്യം മാത്രമല്ല; കൂടുതൽ കരുത്തുറ്റതും കഴിവുള്ളതുമായ ഒരു വെബിനായുള്ള അടിസ്ഥാന സാങ്കേതികവിദ്യയാണിത്.
ആഗോള കാഴ്ചപ്പാടിൽ ഇതിൻ്റെ സ്വാധീനം പരിഗണിക്കുക. ലോകത്തിൻ്റെ പല ഭാഗങ്ങളിലും, അതിവേഗ, സ്ഥിരതയുള്ള ഇൻ്റർനെറ്റ് ഒരു ആഡംബരമാണ്, അല്ലാതെ ഒരു സാധാരണ കാര്യമല്ല. മൊബൈൽ ഡാറ്റ ചെലവേറിയതും പരിമിതവുമാകാം. ഒരു ആപ്ലിക്കേഷൻ യഥാർത്ഥത്തിൽ ആഗോളതലത്തിൽ വിജയിക്കണമെങ്കിൽ, അത് ഈ വൈവിധ്യമാർന്ന നെറ്റ്വർക്ക് സാഹചര്യങ്ങളെ പരിഗണിക്കണം. ബാക്ക്ഗ്രൗണ്ട് ഫെച്ച് തുല്യത ഉറപ്പാക്കുന്ന ഒരു സാങ്കേതികവിദ്യയാണ്. ഇത് ഇടയ്ക്കിടെ കണക്റ്റിവിറ്റി നഷ്ടപ്പെടുന്ന ഒരു പ്രദേശത്തെ ഉപയോക്താവിന് ഒരു വിദ്യാഭ്യാസ വീഡിയോയ്ക്കോ ഒരു പ്രധാന സോഫ്റ്റ്വെയർ അപ്ഡേറ്റിനോ വേണ്ടി ഡൗൺലോഡ് ആരംഭിക്കാനും, അവരുടെ കണക്ഷൻ അനുവദിക്കുന്നതിനനുസരിച്ച് പശ്ചാത്തലത്തിൽ അത് പൂർത്തിയാകുമെന്ന് വിശ്വസിക്കാനും, പരാജയപ്പെട്ട ഫയലുകൾ വീണ്ടും ഡൗൺലോഡ് ചെയ്ത് വിലയേറിയ ഡാറ്റ പാഴാക്കാതിരിക്കാനും അനുവദിക്കുന്നു.
ബാക്ക്ഗ്രൗണ്ട് ഫെച്ചിന്റെ പ്രധാന നേട്ടങ്ങൾ
- തടസ്സമില്ലായ്മയും പുനരാരംഭിക്കലും: ഇതാണ് ഇതിൻ്റെ പ്രധാന സവിശേഷത. ബ്രൗസറിൻ്റെ ഡൗൺലോഡ് മാനേജർ നെറ്റ്വർക്ക് തടസ്സങ്ങളെ ഭംഗിയായി കൈകാര്യം ചെയ്യുന്നു. ഒരു കണക്ഷൻ നഷ്ടപ്പെട്ടാൽ, ഡൗൺലോഡ് താൽക്കാലികമായി നിർത്തുന്നു. കണക്റ്റിവിറ്റി പുനഃസ്ഥാപിക്കുമ്പോൾ, അത് നിർത്തിയിടത്ത് നിന്ന് യാന്ത്രികമായി പുനരാരംഭിക്കുന്നു. HTTP `Range` ഹെഡറുകൾ കൈകാര്യം ചെയ്യുന്നതിനുള്ള സങ്കീർണ്ണമായ ജാവാസ്ക്രിപ്റ്റ് ലോജിക്ക് ഇല്ലാതെയാണ് ഇതെല്ലാം സംഭവിക്കുന്നത്.
- ഓഫ്ലൈൻ നിലനിൽപ്പ്: ഡൗൺലോഡ് ബ്രൗസർ പ്രോസസ്സ് നിയന്ത്രിക്കുകയും ഒരു സർവീസ് വർക്കർ കൈകാര്യം ചെയ്യുകയും ചെയ്യുന്നതിനാൽ, ഇത് ഒരു തുറന്ന ടാബുമായി ബന്ധിപ്പിച്ചിട്ടില്ല. ഒരു ഉപയോക്താവിന് ഒരു ഡൗൺലോഡ് ആരംഭിക്കാനും, ലാപ്ടോപ്പ് അടയ്ക്കാനും, വീട്ടിലേക്ക് യാത്ര ചെയ്യാനും, വീണ്ടും തുറക്കാനും, ഡൗൺലോഡ് പൂർത്തിയായതായി അല്ലെങ്കിൽ പുരോഗമിച്ചതായി കണ്ടെത്താനും കഴിയും.
- വിഭവങ്ങളുടെ കാര്യക്ഷമത: വിഭവങ്ങളുടെ ഉപയോഗം ഒപ്റ്റിമൈസ് ചെയ്യാൻ ഏറ്റവും മികച്ച സ്ഥാനത്തുള്ളത് ബ്രൗസറാണ്. വൈ-ഫൈ കണക്ഷനുകൾ പ്രയോജനപ്പെടുത്തുന്നതിനും, മൊബൈൽ ഡാറ്റ സംരക്ഷിക്കുന്നതിനും, ബാറ്ററി ലൈഫ് ഒപ്റ്റിമൈസ് ചെയ്യുന്നതിനും ഇതിന് ട്രാൻസ്ഫറുകൾ ഷെഡ്യൂൾ ചെയ്യാൻ കഴിയും. ഇത് ലോകമെമ്പാടുമുള്ള മൊബൈൽ ഉപയോക്താക്കൾക്ക് ഒരു പ്രധാന ആശങ്കയാണ്.
- സംയോജിത ഉപയോക്തൃ അനുഭവം: നടന്നുകൊണ്ടിരിക്കുന്ന ഡൗൺലോഡുകൾക്കായി ബ്രൗസറിന് ഒരു നേറ്റീവ്, സിസ്റ്റം-ലെവൽ യൂസർ ഇൻ്റർഫേസ് നൽകാൻ കഴിയും. ഉപയോക്താക്കൾ ഈ വെബ് ഡൗൺലോഡുകൾ നേറ്റീവ് ആപ്ലിക്കേഷനുകളിൽ നിന്നുള്ള ഡൗൺലോഡുകൾ കൈകാര്യം ചെയ്യുന്ന അതേ സ്ഥലത്ത് കാണുകയും നിയന്ത്രിക്കുകയും ചെയ്യുന്നു, ഇത് തടസ്സമില്ലാത്തതും പരിചിതവുമായ ഒരു അനുഭവം സൃഷ്ടിക്കുന്നു. പുരോഗതി, പൂർത്തീകരണം, പരാജയം എന്നിവയ്ക്കുള്ള അറിയിപ്പുകളും ഇതിൽ ഉൾപ്പെടുന്നു.
പ്രധാന ഘടകങ്ങൾ: സർവീസ് വർക്കറുകളും ബാക്ക്ഗ്രൗണ്ട്ഫെച്ച്മാനേജറും
ബാക്ക്ഗ്രൗണ്ട് ഫെച്ച് മനസ്സിലാക്കാൻ, നിങ്ങൾ ആദ്യം അതിൻ്റെ രണ്ട് പ്രാഥമിക ഘടകങ്ങളെക്കുറിച്ച് അറിഞ്ഞിരിക്കണം. അവ ഒരുമിച്ച് പ്രവർത്തിക്കുന്നു: ഒന്ന് വെബ് പേജിൽ നിന്ന് അഭ്യർത്ഥന ആരംഭിക്കുന്നു, മറ്റൊന്ന് പശ്ചാത്തലത്തിൽ ഫലം കൈകാര്യം ചെയ്യുന്നു.
അണിയറയിലെ നായകൻ: സർവീസ് വർക്കർ
ഒരു സർവീസ് വർക്കർ എന്നത് ഒരുതരം വെബ് വർക്കറാണ്, അടിസ്ഥാനപരമായി നിങ്ങളുടെ ബ്രൗസർ പശ്ചാത്തലത്തിൽ പ്രവർത്തിപ്പിക്കുന്ന ഒരു ജാവാസ്ക്രിപ്റ്റ് സ്ക്രിപ്റ്റാണിത്. ഇത് ഏതൊരു വെബ് പേജിൽ നിന്നും പൂർണ്ണമായും വേറിട്ടുനിൽക്കുന്നു. ഇത് ഒരു പ്രോഗ്രാം ചെയ്യാവുന്ന നെറ്റ്വർക്ക് പ്രോക്സിയായി പ്രവർത്തിക്കുന്നു, നെറ്റ്വർക്ക് അഭ്യർത്ഥനകൾ തടസ്സപ്പെടുത്തുകയും കൈകാര്യം ചെയ്യുകയും, കാഷെ നിയന്ത്രിക്കുകയും, പുഷ് അറിയിപ്പുകൾ പ്രവർത്തനക്ഷമമാക്കുകയും ചെയ്യുന്നു. ഇത് സ്വതന്ത്രമായി പ്രവർത്തിക്കുന്നതിനാൽ, നിങ്ങളുടെ വെബ്സൈറ്റ് ഒരു ബ്രൗസർ ടാബിൽ തുറന്നിട്ടില്ലാത്തപ്പോഴും ഇതിന് ടാസ്ക്കുകൾ ചെയ്യാൻ കഴിയും. ബാക്ക്ഗ്രൗണ്ട് ഫെച്ചിനായി, ഡൗൺലോഡിൻ്റെ അന്തിമ വിജയമോ പരാജയമോ ശ്രദ്ധിക്കുകയും, ഫലമായുണ്ടാകുന്ന ഫയലുകൾ പ്രോസസ്സ് ചെയ്യുകയും, UI അപ്ഡേറ്റ് ചെയ്യുകയോ അല്ലെങ്കിൽ ഓഫ്ലൈൻ ഉപയോഗത്തിനായി അസറ്റുകൾ കാഷെ ചെയ്യുകയോ ചെയ്യുന്ന സ്ഥിരമായ ഒരു എൻവയോൺമെൻ്റാണ് സർവീസ് വർക്കർ.
നിയന്ത്രിക്കുന്നത്: ബാക്ക്ഗ്രൗണ്ട്ഫെച്ച്മാനേജർ
നിങ്ങളുടെ പ്രധാന വെബ് പേജിൻ്റെ ജാവാസ്ക്രിപ്റ്റിൽ നിന്ന് ആക്സസ് ചെയ്യാവുന്ന `BackgroundFetchManager` എന്ന ഇൻ്റർഫേസ് ഉപയോഗിച്ചാണ് നിങ്ങൾ ഒരു ബാക്ക്ഗ്രൗണ്ട് ഫെച്ച് ആരംഭിക്കുകയും കോൺഫിഗർ ചെയ്യുകയും ചെയ്യുന്നത്. സർവീസ് വർക്കർ രജിസ്ട്രേഷൻ ഒബ്ജക്റ്റിലൂടെയാണ് നിങ്ങൾ ഇത് ആക്സസ് ചെയ്യുന്നത്: `navigator.serviceWorker.ready.then(swReg => swReg.backgroundFetch)`. ഇതിൻ്റെ പ്രധാന മെത്തേഡ് `fetch()` ആണ്. ഇത് ഒരു ഐഡി, ഡൗൺലോഡ് ചെയ്യാനുള്ള ഫയലുകളുടെ ഒരു ലിസ്റ്റ്, ഒരു കൂട്ടം ഓപ്ഷനുകൾ എന്നിവ എടുക്കുന്നു. ഈ മെത്തേഡ് ഒരു തുടക്കമാണ്; നിങ്ങൾ ഇത് വിളിച്ചുകഴിഞ്ഞാൽ, ബ്രൗസർ നിയന്ത്രണം ഏറ്റെടുക്കുന്നു, നിങ്ങളുടെ സർവീസ് വർക്കർ ഫിനിഷിംഗ് ലൈനിൽ കാത്തിരിക്കുന്നു.
ഘട്ടം ഘട്ടമായുള്ള പ്രായോഗിക നിർദ്ദേശങ്ങൾ
ഒരു വലിയ വീഡിയോ ഫയലിനായി പുനരാരംഭിക്കാൻ കഴിയുന്ന ഒരു ഡൗൺലോഡ് നടപ്പിലാക്കുന്ന പ്രക്രിയയിലൂടെ നമുക്ക് പോകാം. ഈ ഉദാഹരണം അമേരിക്കയിലെ ഒരു മീഡിയ പ്ലാറ്റ്ഫോമിനോ, ഇന്ത്യയിലെ ഒരു ഇ-ലേണിംഗ് സൈറ്റിനോ, ജർമ്മനിയിലെ ഒരു കോർപ്പറേറ്റ് പരിശീലന പോർട്ടലിനോ ആകട്ടെ, സാർവത്രികമായി ബാധകമാണ്.
ഘട്ടം 1: ബ്രൗസർ പിന്തുണ പരിശോധിക്കുന്നു
മറ്റെന്തെങ്കിലും ചെയ്യുന്നതിന് മുമ്പ്, ഉപയോക്താവിൻ്റെ ബ്രൗസർ ബാക്ക്ഗ്രൗണ്ട് ഫെച്ച് API-യെ പിന്തുണയ്ക്കുന്നുണ്ടെന്ന് നിങ്ങൾ ഉറപ്പാക്കണം. പ്രോഗ്രസ്സീവ് എൻഹാൻസ്മെൻ്റ് എന്നറിയപ്പെടുന്ന ഈ രീതി, ഏറ്റവും നൂതനമായ ഫീച്ചറുകൾ ലഭിക്കുന്നില്ലെങ്കിലും, എല്ലാവർക്കും പ്രവർത്തനക്ഷമമായ ഒരു അനുഭവം ഉറപ്പാക്കുന്നു.
നിങ്ങളുടെ പ്രധാന ആപ്ലിക്കേഷൻ സ്ക്രിപ്റ്റിൽ, `BackgroundFetchManager`-ൻ്റെ സാന്നിധ്യം പരിശോധിക്കുക:
if ('BackgroundFetchManager' in self) { // API പിന്തുണയ്ക്കുന്നു, നമുക്ക് മെച്ചപ്പെടുത്തിയ ഡൗൺലോഡ് ബട്ടൺ കാണിക്കാം } else { // API പിന്തുണയ്ക്കുന്നില്ല, ഒരു ഫാൾബാക്ക് നൽകുക (ഉദാ. ഒരു സാധാരണ ലിങ്ക്) }
ഘട്ടം 2: ഒരു സർവീസ് വർക്കർ രജിസ്റ്റർ ചെയ്യുന്നു
ബാക്ക്ഗ്രൗണ്ട് ഫെച്ച് അടിസ്ഥാനപരമായി ഒരു സർവീസ് വർക്കറിനെ ആശ്രയിച്ചിരിക്കുന്നു. നിങ്ങളുടെ പ്രോഗ്രസ്സീവ് വെബ് ആപ്പിന് (PWA) ഇതിനകം ഒന്ന് ഇല്ലെങ്കിൽ, നിങ്ങൾ ഒരെണ്ണം ഉണ്ടാക്കി രജിസ്റ്റർ ചെയ്യേണ്ടതുണ്ട്. നിങ്ങളുടെ പ്രോജക്റ്റിൻ്റെ റൂട്ട് ഡയറക്ടറിയിൽ `service-worker.js` എന്ന പേരിൽ ഒരു ഫയൽ ഉണ്ടാക്കുക. തുടർന്ന്, നിങ്ങളുടെ പ്രധാന ജാവാസ്ക്രിപ്റ്റ് ഫയലിൽ നിന്ന് അത് രജിസ്റ്റർ ചെയ്യുക:
async function registerServiceWorker() { if ('serviceWorker' in navigator) { try { const registration = await navigator.serviceWorker.register('/service-worker.js'); console.log('Service Worker registered successfully:', registration); } catch (error) { console.error('Service Worker registration failed:', error); } } } registerServiceWorker();
ഘട്ടം 3: ഫ്രണ്ട്എൻഡിൽ നിന്ന് ഒരു ബാക്ക്ഗ്രൗണ്ട് ഫെച്ച് ആരംഭിക്കുന്നു
ഇനി, ഒരു ഉപയോക്താവ് ഒരു ബട്ടണിൽ ക്ലിക്ക് ചെയ്യുമ്പോൾ ഡൗൺലോഡ് ആരംഭിക്കുന്ന ഫംഗ്ഷൻ ഉണ്ടാക്കാം. ഈ ഫംഗ്ഷൻ ആക്ടീവായ സർവീസ് വർക്കർ രജിസ്ട്രേഷൻ നേടുകയും തുടർന്ന് `backgroundFetch.fetch()` വിളിക്കുകയും ചെയ്യും.
const downloadVideoButton = document.getElementById('download-video-btn'); downloadVideoButton.addEventListener('click', async () => { try { // സർവീസ് വർക്കർ രജിസ്ട്രേഷൻ നേടുക const swReg = await navigator.serviceWorker.ready; // ഡൗൺലോഡ് വിശദാംശങ്ങൾ നിർവചിക്കുക const videoUrl = '/assets/large-course-video.mp4'; const videoFileSize = 250 * 1024 * 1024; // 250 MB // ബാക്ക്ഗ്രൗണ്ട് ഫെച്ച് ആരംഭിക്കുക const bgFetch = await swReg.backgroundFetch.fetch('course-video-download-01', [videoUrl], { title: 'Module 1: Introduction to Web Development', icons: [{ sizes: '192x192', src: '/images/icons/icon-192.png', type: 'image/png', }], downloadTotal: videoFileSize, } ); console.log('Background Fetch started:', bgFetch); } catch (error) { console.error('Could not start Background Fetch:', error); } });
`swReg.backgroundFetch.fetch()` പാരാമീറ്ററുകൾ വിശദീകരിക്കാം:
- ID (`'course-video-download-01'`): ഈ പ്രത്യേക ഡൗൺലോഡ് ജോലിക്കുള്ള ഒരു യൂണീക് സ്ട്രിംഗ് ഐഡന്റിഫയർ. ഈ ജോലി പിന്നീട് റഫർ ചെയ്യാൻ നിങ്ങൾ ഈ ഐഡി ഉപയോഗിക്കും.
- Requests (`[videoUrl]`): ഫെച്ച് ചെയ്യാനുള്ള URL-കളുടെ ഒരു അറേ. നിങ്ങൾക്ക് ഒരൊറ്റ, ഗ്രൂപ്പ് ചെയ്ത ജോലിയിൽ ഒന്നിലധികം ഫയലുകൾ ഡൗൺലോഡ് ചെയ്യാം.
- Options (`{...}`): ഡൗൺലോഡ് കോൺഫിഗർ ചെയ്യുന്നതിനുള്ള ഒരു ഒബ്ജക്റ്റ്. `title`, `icons` എന്നിവ ബ്രൗസർ നേറ്റീവ് UI നോട്ടിഫിക്കേഷൻ ഉണ്ടാക്കാൻ ഉപയോഗിക്കുന്നു. `downloadTotal` എന്നത് എല്ലാ ഫയലുകളുടെയും പ്രതീക്ഷിക്കുന്ന മൊത്തം വലുപ്പമാണ് (ബൈറ്റുകളിൽ); ഇത് നൽകുന്നത് ബ്രൗസറിന് കൃത്യമായ ഒരു പ്രോഗ്രസ് ബാർ കാണിക്കാൻ അത്യാവശ്യമാണ്.
ഘട്ടം 4: സർവീസ് വർക്കറിലെ ഇവന്റുകൾ കൈകാര്യം ചെയ്യുന്നു
ഡൗൺലോഡ് ബ്രൗസറിന് കൈമാറിക്കഴിഞ്ഞാൽ, നിങ്ങളുടെ ഫ്രണ്ട്എൻഡ് കോഡിൻ്റെ ജോലി തൽക്കാലം കഴിഞ്ഞു. ബാക്കിയുള്ള ലോജിക് `service-worker.js`-ൽ ആണ്, ജോലി പൂർത്തിയാകുമ്പോഴോ പരാജയപ്പെടുമ്പോഴോ ബ്രൗസർ അതിനെ ഉണർത്തും.
നിങ്ങൾ രണ്ട് പ്രധാന ഇവന്റുകൾ ശ്രദ്ധിക്കേണ്ടതുണ്ട്: `backgroundfetchsuccess`, `backgroundfetchfail`.
// service-worker.js-ൽ self.addEventListener('backgroundfetchsuccess', (event) => { const bgFetch = event.registration; event.waitUntil(async function () { console.log(`Background fetch '${bgFetch.id}' completed successfully.`); // ഡൗൺലോഡ് ചെയ്ത ഫയലുകൾ സൂക്ഷിക്കുന്ന കാഷെ തുറക്കുക const cache = await caches.open('downloaded-assets-v1'); // ഡൗൺലോഡ് ചെയ്ത എല്ലാ ഫയൽ റെക്കോർഡുകളും നേടുക const records = await bgFetch.matchAll(); // ഓരോ റെക്കോർഡിനും, റെസ്പോൺസ് കാഷെയിൽ സൂക്ഷിക്കുക const promises = records.map(async (record) => { const response = record.response.clone(); await cache.put(record.request, response); }); await Promise.all(promises); // ഓപ്ഷണൽ: ഡൗൺലോഡ് നോട്ടിഫിക്കേഷനിലെ UI ടൈറ്റിൽ അപ്ഡേറ്റ് ചെയ്യുക await event.updateUI({ title: 'Download complete and ready!' }); }()); }); self.addEventListener('backgroundfetchfail', (event) => { const bgFetch = event.registration; console.error(`Background fetch '${bgFetch.id}' failed.`); // ഓപ്ഷണൽ: പരാജയം പ്രതിഫലിപ്പിക്കുന്നതിനായി UI അപ്ഡേറ്റ് ചെയ്യുക event.updateUI({ title: 'Download failed. Please try again.' }); });
സക്സസ് ഹാൻഡ്ലറിൽ, ഞങ്ങൾ കാഷെ സ്റ്റോറേജ് തുറക്കുകയും, `bgFetch.matchAll()` ഉപയോഗിച്ച് ഡൗൺലോഡ് ചെയ്ത എല്ലാ ഫയലുകളും വീണ്ടെടുക്കുകയും, തുടർന്ന് ഓരോന്നും കാഷെയിൽ ഇടുകയും ചെയ്യുന്നു. ഇത് നിങ്ങളുടെ വെബ് ആപ്ലിക്കേഷന് ഓഫ്ലൈൻ പ്ലേബാക്കിനായി വീഡിയോ ലഭ്യമാക്കുന്നു.
ഘട്ടം 5: പുരോഗതി നിരീക്ഷിക്കലും ഉപയോക്തൃ ഇടപെടലും
ഫീഡ്ബാക്ക് നൽകുന്നത് ഒരു മികച്ച ഉപയോക്തൃ അനുഭവത്തിൻ്റെ ഭാഗമാണ്. ബ്രൗസർ നൽകുന്ന ഡൗൺലോഡ് നോട്ടിഫിക്കേഷനിൽ ഉപയോക്താവ് ക്ലിക്ക് ചെയ്യുമ്പോൾ, നമ്മുടെ ആപ്ലിക്കേഷനിലെ ഒരു പ്രസക്തമായ പേജിലേക്ക് അവരെ കൊണ്ടുപോകണം. സർവീസ് വർക്കറിലെ `backgroundfetchclick` ഇവൻ്റ് ഉപയോഗിച്ച് നമ്മൾ ഇത് കൈകാര്യം ചെയ്യുന്നു.
// service-worker.js-ൽ self.addEventListener('backgroundfetchclick', (event) => { const bgFetch = event.registration; if (bgFetch.id === 'course-video-download-01') { event.waitUntil( clients.openWindow('/downloads') ); } });
ഈ പ്രത്യേക ഡൗൺലോഡ് ജോലിക്കുള്ള നോട്ടിഫിക്കേഷനിൽ ഉപയോക്താവ് ക്ലിക്ക് ചെയ്യുമ്പോൾ നിങ്ങളുടെ വെബ്സൈറ്റിൻ്റെ `/downloads` പേജ് തുറക്കാൻ ഈ കോഡ് ബ്രൗസറിനോട് പറയുന്നു. ആ പേജിൽ, നിങ്ങൾക്ക് ഡൗൺലോഡ് പുരോഗതിയോ പൂർത്തിയായ ഡൗൺലോഡുകളുടെ ലിസ്റ്റോ കാണിക്കാൻ കഴിയും.
പുനരാരംഭിക്കുന്നതിലെ മാന്ത്രികത: ഇത് എങ്ങനെയാണ് യഥാർത്ഥത്തിൽ പ്രവർത്തിക്കുന്നത്?
ബാക്ക്ഗ്രൗണ്ട് ഫെച്ചിൻ്റെ ഏറ്റവും ശക്തവും ഒരുപക്ഷേ ഏറ്റവും തെറ്റിദ്ധരിക്കപ്പെട്ടതുമായ വശം അതിൻ്റെ യാന്ത്രിക പുനരാരംഭിക്കൽ കഴിവാണ്. അതിനായി നിങ്ങൾ യാതൊരു പ്രത്യേക കോഡും എഴുതാതെ അത് എങ്ങനെ പ്രവർത്തിക്കുന്നു?
ഉത്തരം, നിങ്ങൾ ഉത്തരവാദിത്തം ഉയർന്ന തോതിൽ ഒപ്റ്റിമൈസ് ചെയ്ത, സിസ്റ്റം-ലെവൽ പ്രോസസ്സായ ബ്രൗസറിൻ്റെ സ്വന്തം ഡൗൺലോഡ് മാനേജർക്ക് കൈമാറി എന്നതാണ്. നിങ്ങൾ ഒരു ബാക്ക്ഗ്രൗണ്ട് ഫെച്ച് ആരംഭിക്കുമ്പോൾ, നിങ്ങൾ നെറ്റ്വർക്കിലൂടെയുള്ള ബൈറ്റുകൾ നേരിട്ട് നിയന്ത്രിക്കുന്നില്ല. ബ്രൗസറാണ് അത് ചെയ്യുന്നത്.
ഒരു നെറ്റ്വർക്ക് തടസ്സ സമയത്ത് സംഭവങ്ങളുടെ ക്രമം ഇതാ:
- ഉപയോക്താവ് ഒരു ഫയൽ ഡൗൺലോഡ് ചെയ്യുന്നു, അവരുടെ ഉപകരണത്തിന് നെറ്റ്വർക്ക് കണക്ഷൻ നഷ്ടപ്പെടുന്നു (ഉദാ. അവർ ഒരു ടണലിൽ പ്രവേശിക്കുന്നു).
- ബ്രൗസറിൻ്റെ ഡൗൺലോഡ് മാനേജർ നെറ്റ്വർക്ക് പരാജയം കണ്ടെത്തുകയും ട്രാൻസ്ഫർ ഭംഗിയായി താൽക്കാലികമായി നിർത്തുകയും ചെയ്യുന്നു. എത്ര ബൈറ്റുകൾ വിജയകരമായി ലഭിച്ചു എന്നതിൻ്റെ ട്രാക്ക് അത് സൂക്ഷിക്കുന്നു.
- ഉപയോക്താവിൻ്റെ ഉപകരണത്തിന് പിന്നീട് ഒരു നെറ്റ്വർക്ക് കണക്ഷൻ തിരികെ ലഭിക്കുന്നു.
- ബ്രൗസർ യാന്ത്രികമായി ഡൗൺലോഡ് പുനരാരംഭിക്കാൻ ശ്രമിക്കുന്നു. ഇത് അതേ ഫയലിനായി സെർവറിലേക്ക് ഒരു പുതിയ HTTP അഭ്യർത്ഥന അയയ്ക്കുന്നു, എന്നാൽ ഇത്തവണ അത് ഒരു `Range` ഹെഡർ ഉൾക്കൊള്ളുന്നു. ഇത് ഫലത്തിൽ സെർവറിനോട് പറയുന്നു, "എനിക്ക് ഇതിനകം ആദ്യത്തെ 'X' ബൈറ്റുകൾ ഉണ്ട്, ദയവായി എനിക്ക് ബാക്കിയുള്ളവ 'X+1' ബൈറ്റിൽ നിന്ന് അയച്ചുതരിക."
- ശരിയായി കോൺഫിഗർ ചെയ്ത ഒരു സെർവർ `206 Partial Content` സ്റ്റാറ്റസോടെ പ്രതികരിക്കുകയും ഫയലിൻ്റെ ബാക്കി ഭാഗം സ്ട്രീം ചെയ്യാൻ തുടങ്ങുകയും ചെയ്യും.
- ബ്രൗസർ ഈ പുതിയ ഡാറ്റ ഭാഗികമായി ഡൗൺലോഡ് ചെയ്ത ഫയലിലേക്ക് ചേർക്കുന്നു.
ഈ മുഴുവൻ പ്രക്രിയയും നിങ്ങളുടെ ജാവാസ്ക്രിപ്റ്റ് കോഡിന് സുതാര്യമാണ്. നിങ്ങളുടെ സർവീസ് വർക്കറിനെ ഏറ്റവും അവസാനം, ഫയൽ പൂർണ്ണമായി ഡൗൺലോഡ് ചെയ്യുകയും വിജയകരമായി കൂട്ടിച്ചേർക്കുകയും ചെയ്യുമ്പോൾ, അല്ലെങ്കിൽ പ്രക്രിയ പൂർണ്ണമായും പരാജയപ്പെടുമ്പോൾ (ഉദാ. ഫയൽ ഇനി സെർവറിൽ ഇല്ലെങ്കിൽ) മാത്രമേ അറിയിക്കൂ. ഈ അബ്സ്ട്രാക്ഷൻ അവിശ്വസനീയമാംവിധം ശക്തമാണ്, ഇത് ഡെവലപ്പർമാരെ സങ്കീർണ്ണവും ദുർബലവുമായ ഡൗൺലോഡ് പുനരാരംഭിക്കൽ ലോജിക് നിർമ്മിക്കുന്നതിൽ നിന്ന് മോചിപ്പിക്കുന്നു.
അഡ്വാൻസ്ഡ് ആശയങ്ങളും ആഗോള ഉപയോക്താക്കൾക്കുള്ള മികച്ച രീതികളും
കൃത്യമായ `downloadTotal` നൽകുന്നു
`downloadTotal` ഓപ്ഷൻ വെറുമൊരു ഭംഗിക്ക് വേണ്ടിയുള്ളതല്ല. അതില്ലാതെ, ബ്രൗസറിന് ഒരു അനിശ്ചിത പ്രോഗ്രസ് ഇൻഡിക്കേറ്റർ (ഉദാ. കറങ്ങുന്ന ഐക്കൺ) മാത്രമേ കാണിക്കാൻ കഴിയൂ. അതോടൊപ്പം, ഇതിന് കൃത്യമായ ഒരു പ്രോഗ്രസ് ബാർ പ്രദർശിപ്പിക്കാനും ശേഷിക്കുന്ന സമയം കണക്കാക്കാനും കഴിയും. ഇത് ഉപയോക്തൃ അനുഭവം ഗണ്യമായി മെച്ചപ്പെടുത്തുന്നു. ഈ മൂല്യം ലഭിക്കുന്നതിന്, `Content-Length` ഹെഡർ പരിശോധിക്കുന്നതിനായി ഫയലിൻ്റെ URL-ലേക്ക് മുൻകൂട്ടി ഒരു `HEAD` അഭ്യർത്ഥന നടത്തേണ്ടി വന്നേക്കാം, അല്ലെങ്കിൽ നിങ്ങളുടെ API-ക്ക് ഫയൽ വലുപ്പങ്ങൾ അതിൻ്റെ മെറ്റാഡാറ്റയുടെ ഭാഗമായി നൽകാൻ കഴിയും.
ഒരൊറ്റ ഫെച്ചിൽ ഒന്നിലധികം ഫയലുകൾ കൈകാര്യം ചെയ്യുന്നു
ബന്ധപ്പെട്ട അസറ്റുകൾ ഗ്രൂപ്പ് ചെയ്യുമ്പോൾ ഈ API തിളങ്ങുന്നു. ഒരു ഉപയോക്താവ് ഒരു ഫോട്ടോ ഗാലറി, അതിൻ്റെ ഡോക്യുമെൻ്റേഷനോടുകൂടിയ ഒരു സോഫ്റ്റ്വെയർ പാക്കേജ്, അല്ലെങ്കിൽ അതിൻ്റെ എല്ലാ ടെക്സ്ചറുകളും ഓഡിയോ ഫയലുകളുമുള്ള ഒരു വീഡിയോ ഗെയിം ലെവൽ ഡൗൺലോഡ് ചെയ്യുന്നത് സങ്കൽപ്പിക്കുക. നിങ്ങൾക്ക് `backgroundFetch.fetch()`-ലേക്ക് URL-കളുടെ ഒരു അറേ പാസ്സ് ചെയ്യാൻ കഴിയും. ഇത് ബ്രൗസർ ഒരു അറ്റോമിക് ജോലിയായി കണക്കാക്കുന്നു, ഒരൊറ്റ നോട്ടിഫിക്കേഷനും മുഴുവൻ ബണ്ടിലിനും ഒരു പ്രോഗ്രസ് ബാറും ഉണ്ടാകും. നിങ്ങളുടെ `backgroundfetchsuccess` ഹാൻഡ്ലറിൽ, `bgFetch.matchAll()` റെക്കോർഡുകളുടെ ഒരു അറേ നൽകും, അത് നിങ്ങൾക്ക് വ്യക്തിഗതമായി പ്രോസസ്സ് ചെയ്യാൻ കഴിയും.
പിശകുകൾ കൈകാര്യം ചെയ്യലും പരാജയ സാഹചര്യങ്ങളും
ഒരു ഡൗൺലോഡ് പല കാരണങ്ങളാൽ പരാജയപ്പെടാം: സെർവർ 404 പിശക് നൽകുന്നു, ഉപയോക്താവിന് ഡിസ്ക് സ്പേസ് തീർന്നുപോകുന്നു, അല്ലെങ്കിൽ ഉപയോക്താവ് ബ്രൗസറിൻ്റെ UI-ൽ നിന്ന് ഡൗൺലോഡ് സ്വമേധയാ റദ്ദാക്കുന്നു. നിങ്ങളുടെ `backgroundfetchfail` ഇവൻ്റ് ഹാൻഡ്ലർ നിങ്ങളുടെ സുരക്ഷാ വലയാണ്. ഭാഗികമായ ഡാറ്റ വൃത്തിയാക്കാനും, നിങ്ങളുടെ ആപ്ലിക്കേഷനിൽ ഉപയോക്താവിനെ അറിയിക്കാനും, ഒരുപക്ഷേ ഒരു റീട്രൈ ബട്ടൺ നൽകാനും നിങ്ങൾക്ക് ഇത് ഉപയോഗിക്കാം. പരാജയം ഒരു സാധ്യതയാണെന്ന് മനസ്സിലാക്കുന്നത് ഒരു ശക്തമായ സിസ്റ്റം നിർമ്മിക്കുന്നതിന് പ്രധാനമാണ്.
ക്യാഷ് API ഉപയോഗിച്ച് ഡൗൺലോഡ് ചെയ്ത ഫയലുകൾ സംഭരിക്കുന്നു
ഡൗൺലോഡ് ചെയ്ത വെബ് അസറ്റുകൾ സംഭരിക്കുന്നതിനുള്ള ഏറ്റവും സാധാരണവും ഫലപ്രദവുമായ സ്ഥലം Cache API ആണ്. ഇത് `Request`, `Response` ഒബ്ജക്റ്റുകൾക്കായി പ്രത്യേകം രൂപകൽപ്പന ചെയ്ത ഒരു സംഭരണ സംവിധാനമാണ്. നിങ്ങളുടെ ഡൗൺലോഡ് ചെയ്ത ഫയലുകൾ കാഷെയിൽ വെക്കുന്നതിലൂടെ, ഉപയോക്താവ് അവ ആക്സസ് ചെയ്യാൻ ശ്രമിക്കുമ്പോൾ നിങ്ങൾക്ക് അവയെ സർവീസ് വർക്കറിൽ നിന്ന് നേരിട്ട് നൽകാൻ കഴിയും, ഇത് നിങ്ങളുടെ ആപ്ലിക്കേഷനെ യഥാർത്ഥത്തിൽ ഓഫ്ലൈൻ-ശേഷിയുള്ളതാക്കുന്നു.
വിവിധ വ്യവസായങ്ങളിലെ ഉപയോഗങ്ങൾ
ബാക്ക്ഗ്രൗണ്ട് ഫെച്ചിൻ്റെ ആപ്ലിക്കേഷനുകൾ വളരെ വലുതും നിരവധി ആഗോള വ്യവസായങ്ങളിൽ വ്യാപിച്ചുകിടക്കുന്നതുമാണ്:
- മീഡിയയും വിനോദവും: വെബ് അധിഷ്ഠിത സ്ട്രീമിംഗ് സേവനങ്ങൾക്ക് ഒരു ഓഫ്ലൈൻ മോഡ് നൽകാൻ കഴിയും. ഇത് ഏതൊരു രാജ്യത്തുമുള്ള ഉപയോക്താക്കൾക്കും അവരുടെ നേറ്റീവ് ആപ്പ് പോലെ വിമാനയാത്രകൾക്കോ യാത്രാവേളകൾക്കോ വേണ്ടി സിനിമകളോ സംഗീതമോ ഡൗൺലോഡ് ചെയ്യാൻ അനുവദിക്കുന്നു.
- വിദ്യാഭ്യാസവും ഇ-ലേണിംഗും: ആഫ്രിക്കയിലെ ഒരു സർവ്വകലാശാലയ്ക്ക് വിദ്യാർത്ഥികൾക്ക് വലിയ വീഡിയോ പ്രഭാഷണങ്ങളും ഇൻ്ററാക്ടീവ് കോഴ്സ് മെറ്റീരിയലുകളും ഡൗൺലോഡ് ചെയ്യുന്നതിനായി ഒരു വെബ് പോർട്ടൽ നൽകാൻ കഴിയും, ഇത് മോശം ഹോം ഇൻ്റർനെറ്റ് ഉള്ളവർക്കും അവരുടെ വിദ്യാഭ്യാസം നേടാൻ കഴിയുമെന്ന് ഉറപ്പാക്കുന്നു.
- എൻ്റർപ്രൈസും ഫീൽഡ് സേവനങ്ങളും: ഒരു ആഗോള നിർമ്മാണ കമ്പനിക്ക് അവരുടെ ഫീൽഡ് എഞ്ചിനീയർമാർക്ക് ഒരു PWA നൽകാൻ കഴിയും. ഇത് ഇൻ്റർനെറ്റ് ലഭ്യമല്ലാത്ത ഒരു വിദൂര സൈറ്റിലേക്ക് പോകുന്നതിന് മുമ്പ് മെഷിനറികളുടെ വലിയ 3D സ്കീമാറ്റിക്സുകളും സാങ്കേതിക മാനുവലുകളും ഡൗൺലോഡ് ചെയ്യാൻ അവരെ അനുവദിക്കുന്നു.
- യാത്രയും ടൂറിസവും: ഒരു ട്രാവൽ ആപ്ലിക്കേഷന് ഉപയോക്താക്കൾക്ക് അവരുടെ ലക്ഷ്യസ്ഥാനത്തിനായി ഓഫ്ലൈൻ മാപ്പുകൾ, സിറ്റി ഗൈഡുകൾ, ടിക്കറ്റ് വിവരങ്ങൾ എന്നിവ ഡൗൺലോഡ് ചെയ്യാൻ അനുവദിക്കാം, ഇത് അവരെ വിലയേറിയ അന്താരാഷ്ട്ര ഡാറ്റാ റോമിംഗ് ചാർജുകളിൽ നിന്ന് രക്ഷിക്കുന്നു.
ബ്രൗസർ അനുയോജ്യതയും ഭാവിയും
ഈ എഴുതുന്ന സമയത്ത്, ബാക്ക്ഗ്രൗണ്ട് ഫെച്ച് API പ്രധാനമായും ഗൂഗിൾ ക്രോം, മൈക്രോസോഫ്റ്റ് എഡ്ജ് പോലുള്ള ക്രോമിയം അധിഷ്ഠിത ബ്രൗസറുകളിലാണ് പിന്തുണയ്ക്കുന്നത്. ഏറ്റവും പുതിയ അനുയോജ്യത വിവരങ്ങൾക്കായി CanIUse.com അല്ലെങ്കിൽ MDN വെബ് ഡോക്സ് പോലുള്ള ഉറവിടങ്ങൾ പരിശോധിക്കേണ്ടത് പ്രധാനമാണ്. സാർവത്രികമായി അംഗീകരിക്കപ്പെട്ടിട്ടില്ലെങ്കിലും, പ്രധാന ബ്രൗസറുകളിലെ ഇതിൻ്റെ സാന്നിധ്യം ഒരു സുപ്രധാന ചുവടുവെപ്പാണ്. വെബ് പ്ലാറ്റ്ഫോം വികസിക്കുന്നത് തുടരുമ്പോൾ, ഇതുപോലുള്ള API-കൾ വെബ്, നേറ്റീവ് ആപ്ലിക്കേഷനുകൾ തമ്മിലുള്ള കഴിവുകളുടെ വിടവ് നികത്തുന്നു. ഇത് ശക്തവും, തടസ്സമില്ലാത്തതും, ആഗോളതലത്തിൽ ലഭ്യമായതുമായ ഒരു പുതിയ തലമുറ PWA-കൾക്ക് വഴിയൊരുക്കുന്നു.
ഉപസംഹാരം: എല്ലാവർക്കുമായി കൂടുതൽ ശക്തമായ ഒരു വെബ് നിർമ്മിക്കാം
ബാക്ക്ഗ്രൗണ്ട് ഫെച്ച് API ഫയലുകൾ ഡൗൺലോഡ് ചെയ്യുന്നതിനുള്ള ഒരു ഉപകരണം മാത്രമല്ല. നമ്മൾ നിർമ്മിക്കാൻ ആഗ്രഹിക്കുന്ന വെബിനെക്കുറിച്ചുള്ള ഒരു പ്രസ്താവനയാണിത്: തടസ്സമില്ലാത്തതും ഉപയോക്തൃ-കേന്ദ്രീകൃതവും, അവരുടെ ഉപകരണമോ നെറ്റ്വർക്ക് കണക്ഷന്റെ ഗുണനിലവാരമോ പരിഗണിക്കാതെ എല്ലാവർക്കുമായി പ്രവർത്തിക്കുന്ന ഒന്ന്. വലിയ കൈമാറ്റങ്ങൾ ബ്രൗസറിലേക്ക് മാറ്റുന്നതിലൂടെ, ഒരു പ്രോഗ്രസ് ബാർ നിരീക്ഷിക്കുന്നതിൻ്റെ ഉത്കണ്ഠയിൽ നിന്ന് ഞങ്ങൾ ഞങ്ങളുടെ ഉപയോക്താക്കളെ മോചിപ്പിക്കുന്നു, ഞങ്ങൾ അവരുടെ ഡാറ്റയും ബാറ്ററിയും സംരക്ഷിക്കുന്നു, ഒപ്പം ശക്തവും വിശ്വസനീയവുമായ ഒരു അനുഭവം നൽകുന്നു.
വലിയ ഫയൽ കൈമാറ്റങ്ങൾ ഉൾപ്പെടുന്ന നിങ്ങളുടെ അടുത്ത വെബ് പ്രോജക്റ്റ് ആസൂത്രണം ചെയ്യുമ്പോൾ, പരമ്പരാഗത `fetch`-ന് അപ്പുറത്തേക്ക് നോക്കുക. നിങ്ങളുടെ ഉപയോക്താക്കളുടെ ആഗോള സാഹചര്യം പരിഗണിച്ച്, ഒരു യഥാർത്ഥ ആധുനിക, ഓഫ്ലൈൻ-ഫസ്റ്റ് ആപ്ലിക്കേഷൻ നിർമ്മിക്കുന്നതിന് ബാക്ക്ഗ്രൗണ്ട് ഫെച്ചിൻ്റെ ശക്തി സ്വീകരിക്കുക. വെബിൻ്റെ ഭാവി സ്ഥിരവും തടസ്സമില്ലാത്തതുമാണ്, ഇപ്പോൾ, നിങ്ങളുടെ ഡൗൺലോഡുകൾക്കും അങ്ങനെയാകാം.