در برنامههای وب، تازهسازی محتوا یک امر رایج است، اما در برنامههای دسکتاپ محلی اهمیت بیشتری دارد، زیرا بسیاری از برنامهها محتوا را در فایلهای محلی رندر میکنند و سپس آن فایلها را برای نمایش به عنوان پیشنمایش یا انواع نماهای HTML در WebView بارگیری میکنند. کنترل WebView2 دارای متد CoreWebView2.Reload() است، اما فاقد پارامتر noCache برای بارگیری مجدد کامل محتوا و تمام وابستگیهای آن است.
این مسئله زمانی اهمیت پیدا میکند که عملیاتی مانند درج یا کپی کردن تصاویر در سند انجام شود و در صورت تغییر تصویر، نیاز به مشاهده تغییرات فوری در پیشنمایش باشد. متد Reload() صفحه را بارگیری مجدد میکند، اما تصاویر را تازهسازی نمیکند، بنابراین حتی اگر بتوانید صفحه را تازهسازی کنید، تصویر تغییر یافته نمایش داده نمیشود.
بررسیها نشان میدهد که حتی با فراخوانی متد Reload()، محتوای صفحه گاهی اوقات نیز تازهسازی نمیشود، که میتواند به دلیل سیاست کش سایت هدف یا سیاست کش مرورگر با فایلهای محلی یا عدم بهروزرسانی صحیح مهر زمانی LastWrite فایلهای محلی باشد.
به طور کلی، تازهسازی منابع وابسته مانند تصاویر، اسکریپتها و استایلشیتها با استفاده از CoreWebView2.Reload() انجام نمیشود که این امر میتواند برای برنامههایی که از مرورگر به عنوان پیشنمایشگر استفاده میکنند، آزاردهنده باشد. این مشکل حتی در مرورگرهای دسکتاپ نیز وجود دارد، مگر اینکه از تازهسازی اجباری (hard refresh) استفاده شود.
مشاهده مطلب اصلی