পৃষ্ঠার ক্যাচিং থেকে ব্রাউজারগুলিকে অক্ষম করার জন্য এএসপি.এনইটি কোড প্রয়োজনীয় কী তা সম্পর্কে আমি একটি নির্দিষ্ট রেফারেন্স পরে আছি। এইচটিটিপি শিরোনাম এবং মেটা ট্যাগগুলিকে প্রভাবিত করার বিভিন্ন উপায় রয়েছে এবং আমি এই ধারণাটি পাই যে সঠিকভাবে আচরণ করার জন্য বিভিন্ন ব্রাউজারগুলি পেতে বিভিন্ন সেটিংসের প্রয়োজন হয়। কোনও ব্রাউজারের জন্য কোনটি কাজ করে এবং সংস্করণগুলি সহ নির্দিষ্ট ব্রাউজারের জন্য কোনটি প্রয়োজনীয় তা বোঝাতে মন্তব্য করা কোডের একটি রেফারেন্স বিট পাওয়া সত্যিই দুর্দান্ত হবে।
এই সমস্যাটি সম্পর্কে সেখানে প্রচুর পরিমাণে তথ্য রয়েছে তবে আমি এখনও একটি ভাল রেফারেন্স খুঁজে পাইনি যা প্রতিটি পদ্ধতির সুবিধার বর্ণনা করে এবং কোনও নির্দিষ্ট প্রযুক্তি কোনও উচ্চ স্তরের এপিআই দ্বারা ছাড়িয়ে গেছে কিনা describes
আমি বিশেষত এএসপি.নেট 3.5 এসপি 1 তে আগ্রহী তবে পূর্ববর্তী সংস্করণটির উত্তরও পাওয়া ভাল হবে।
এই ব্লগ এন্ট্রি ফায়ারফক্স এবং আই ক্যাচ মধ্যে দুটি গুরুত্বপূর্ণ পার্থক্য কিছু HTTP প্রোটোকল আচরণের পার্থক্য বর্ণনা করে।
নীচের নমুনা কোডটি আমি কীভাবে আগ্রহী তা চিত্রিত করে
public abstract class NoCacheBasePage : System.Web.UI.Page
{
protected override void OnInit(EventArgs e)
{
base.OnInit(e);
DisableClientCaching();
}
private void DisableClientCaching()
{
// Do any of these result in META tags e.g. <META HTTP-EQUIV="Expire" CONTENT="-1">
// HTTP Headers or both?
// Does this only work for IE?
Response.Cache.SetCacheability(HttpCacheability.NoCache);
// Is this required for FireFox? Would be good to do this without magic strings.
// Won't it overwrite the previous setting
Response.Headers.Add("Cache-Control", "no-cache, no-store");
// Why is it necessary to explicitly call SetExpires. Presume it is still better than calling
// Response.Headers.Add( directly
Response.Cache.SetExpires(DateTime.UtcNow.AddYears(-1));
}
}