საცავები
საცავები არამხოლოდ სერვერის მხარეს გვაქვს არამედ კლიენტის მხარესაც.
წარმოიდგინეთ, რომ სარგებლობთ ვებსაიტით, სადაც ისეთი რაღაცები შეცვალეთ, რაც ვებსაიტმა სადმე უნდა შეინახოს: ფერების თემა, საშოპინგო კალათა, ნახევრად შევსებული ფორმა, მომხმარებლის იდენტობა და ა.შ. ასეთი ინფორმაცია ჩვეულებრივ მარტივად იკარგება, თუ ერთი გვერდიდან მეორეზე გადავალთ ან ვებსაიტს თავიდან გავხსნით. გარკვეული მონაცემები უნდა ნარჩუნდებოდეს ერთი სესიიდან მეორეზე ან მხოლოდ ერთსა და იმავე სესიაში. ასე რომ არ იყოს, როგორ მიხვდებოდა ვებსაიტი, რომ თქვენ იგივე მომხმარებელი ხართ, რომელიც რამდენიმე საათის წინ შემოვიდა საიტზე? თქვენ ხომ ყოველ ჯერზე იმეილისა და პაროლის შეყვანა არ გიწევთ სოციალურ ქსელებში შესვლისას! აპლიკაცია როგორღაც გიმახსოვრებთ. ამისათვის ვებსაიტები იყენებენ ბრაუზერის საცავებს.
კლიენტის მხარეს არსებული საცავები
კლიენტის მხარეს არაერთი საცავი გვაქვს. თითოეულ მათგანს გააჩნია სხვადასხვა ფუნქციონალი, თუმცა დანიშნულება ერთია: შევინახოთ მომხარებლის ინფორმაცია. ეს ინფორმაცია შეიძლება იყოს:
- პერსონალიზირებული ინფორმაცია (მსგავსი მაგალითი, რაც დასწყისში განვიხილეთ).
- საიტის რაიმე აქტივობა, მაგალითად საიტზე უკვე იხილა ერთი ანიმაცია და მეორეჯერ იგივე არ უნდა ვუჩვენოთ.
- ნებისმიერი სახის ინფორმაციის შენახვა, რაც დეველოპერს გაუხარდება.
სად შეგვიძლია კლიენტის მხარეს ინფორმაციის შენახვა?
კლიენტის მხარეს ინფორმაციის შენახვა შესაძლებელია შემდგომი გზებით:
cookie
პირველი მიდგომა, რომელიც გამოიყენებოდა ინფორმაციის შესანახად უწინ. დღესდღეისობითაც გამოიყენება, თუმცა მეტწილადად ინახება ისეთი ტიპის ინფორმაცია, როგორიცაა პერსონალური მაიდენტიფიცირებელი კოდი (ID და სხვა).- Web Storage API-ის გამოყენებით, რომელიც გვთავაზობს ორ მიდგომას:
- IndexedDB API გვთავაზობს კლიენტის მხარეს სრულფასოვან მონაცემთა ბაზის სისტემას, რომელიც გამოიყენება კომპლექსური ინფორმაციის შესანახად, სადაც შეგვიძლია შევინახოთ ნებისმიერი ტიპის ინფორმაცია თუნდაც აუდიო და ვიდეო ფაილები.
- Cache მიდგომა გამოიყენება HTTP მოთხოვნიდან დაბრუნებული ინფორმაციის შესანახად, რომელიც დაგვეხამრება ერთიდაიგივე მოთხოვნის თავიდან გაგზავნაში, ან ინტერნეტთან კავშირის პრობლემების შემთხვევაში მონაცემების მარტივად აღდგენაში.
თითოეულ მიდგომა განხილული იქნება ცალკეულ სტატიებში:
- localStorage.
- sessionStorage.
- cookie.
- IndexedDB (მოგვიანებით დაემატება).
- Cache (მოგვიანებით დაემატება).