Tôi retreiving hình ảnh từ một thư mục máy chủ web như thế này:Có cách nào để buộc WebClient, không trả lại dữ liệu được lưu trong bộ nhớ cache không?
WebClient webClientImgDownloader = new WebClient();
webClientImgDownloader.OpenReadCompleted += new OpenReadCompletedEventHandler(webClientImgDownloader_OpenReadCompleted);
if(uriIndex < uris.Count())
webClientImgDownloader.OpenReadAsync(new Uri(uris[uriIndex], UriKind.Absolute));
Nhưng tôi đã nhận thấy nếu tôi xóa hình ảnh, Silverlight tiếp tục lấy lại hình ảnh như thể nó là ở đó.
Khi tôi nhập URL hình ảnh vào FireFox, tôi cũng thấy hình ảnh, nhưng sau đó tôi bấm Reload
và nó cho tôi lỗi thích hợp mà hình ảnh không tồn tại. Sau đó, khi tôi chạy ứng dụng Silverlight của tôi một lần nữa, nó cũng cung cấp cho tôi một lỗi rằng hình ảnh không tồn tại như thể trình duyệt đã xóa một cờ bộ nhớ đệm ở đâu đó.
Làm cách nào tôi có thể thực hiện "làm mới" qua WebClient trong mã, để nếu hình ảnh đột nhiên không tồn tại trên máy chủ, Silverlight không tiếp tục cung cấp cho tôi bản sao lưu của nó?
WebClient không trả lại dữ liệu lưu trữ. Nó trả về dữ liệu được cung cấp bởi máy chủ và bất kỳ proxy caching nào. Bạn sẽ phải yêu cầu máy chủ gửi cho bạn dữ liệu mà bạn không muốn nhận. –
@John: Thực ra trong trường hợp này tôi nghi ngờ rằng không có yêu cầu thực tế nào cả. WebClient sẽ sử dụng ngăn xếp của Trình duyệt và sẽ cung cấp nội dung ra khỏi bộ đệm cục bộ thay vì đưa ra yêu cầu tới máy chủ. – AnthonyWJones
@Anthony: Tôi không biết rằng nó đang sử dụng lại nhiều thứ trong ngăn xếp trình duyệt. Bạn có một tham chiếu để nói rằng nó được thực hiện theo cách đó? –