আমি কীভাবে একক পৃষ্ঠাগুলির অ্যাপ্লিকেশনগুলির জন্য ওয়েব ব্রাউজার ক্যাশে সঠিকভাবে পরিচালনা করতে হবে তা জানার চেষ্টা করছি।
আমার মোটামুটি সাধারণ নকশা রয়েছে: বেশ কয়েকটি এইচটিএমএল, জেএস এবং সিএসএস ফাইল এসপিএ বাস্তবায়ন করে, এবং এসপিএ দ্বারা গ্রাস করা জেএসএন ডেটা একগুচ্ছ। আমি যখন কোনও আপডেট চাপতে চাইলে সমস্যা দেখা দেয়: আমি সাইটের স্থিতিশীল অংশ এবং কোডটি একই সময়ে জেএসএন তৈরি করে আপডেট করি তবে ক্লায়েন্ট ব্রাউজারগুলিতে প্রায়শই স্থির অংশটি ক্যাশে থাকে, তাই পুরানো কোডটি নতুন ডেটা প্রক্রিয়া করার চেষ্টা করে এবং (পরিবর্তিত উপর নির্ভর করে) সমস্যা হতে পারে। (বিশেষত, আইই ক্রোম বা ফায়ারফক্সের চেয়ে বেশি আক্রমণাত্মক বলে মনে হচ্ছে পুনরায় সংশোধন না করে ক্যাশেড জেএস ব্যবহার করা।)
এটি পরিচালনা করার সর্বোত্তম উপায় কী?
- আমার JSON পরিবর্তনগুলি পিছনের দিকে সামঞ্জস্যপূর্ণ হয়েছে তা নিশ্চিত করুন এবং ধরুন ব্রাউজারের ক্যাচগুলি যুক্তিসঙ্গত সময়সীমার মধ্যেই শেষ হয়ে যাবে।
- স্থির জেএস এবং জেএসওএন উভয় ক্ষেত্রেই কিছু সংখ্যক সংস্করণ নম্বর এম্বেড করুন, তারপরে
window.location.reload(true);
তারা মেলে না তবে কার্যকর করুন । - ব্রাউজারগুলি সর্বদা প্রতিটি লোডের সমস্ত সংস্থান পুনরূদ্ধার করে তা নিশ্চিত করার জন্য শিরোনামগুলির উপযুক্ত সংমিশ্রণটি (
must-revalidate
বাno-cache
যা কিছু হোক; উত্সগুলি কীভাবে এটি করতে পারে তা আলাদা করে নিন) এমনকি সাইটটি লোড করার জন্য কয়েকটি অতিরিক্ত রাউন্ড ট্রিপস বোঝায়। - আমার ক্যাশে-নিয়ন্ত্রণকে মাইক্রো-পরিচালনা করে এবং শিরোনামের মেয়াদ শেষ হয় যাতে আমি কোনও আপডেট ধাক্কা দিতে চাইলে স্থির সামগ্রীর মেয়াদ শেষ হয়।
- অন্যকিছু?