2016-08-20 43 views
0

我的OSX應用程序試圖在web視圖中加載網頁。我需要緩存網頁,以便在應用程序的連續啓動之間更快地播放頁面。使用來自OSX應用程序的NSURLRequest加載頁面時,不會緩存大尺寸鏈接資源

鏈接到頁面的所有資源文件(js/css/images)都被緩存,除了一個3MB大小的js文件。我在cache.db文件中驗證了這一點,並且在相關表中沒有與此特定文件相關的條目。

我曾嘗試很多東西,包括

  • 增加高速緩存容量
  • 增加超時時間請求
  • 改變參數高速緩存策略

確定的解決方法是明確請求js文件並強制將其存儲在緩存中。

[[NSURLCache sharedURLCache] storeCachedResponse:cachedURLResponse forRequest:request]; 

這將正確地緩存文件,並且在後續啓動時,只有極少的網絡活動。這顯然不是解決方案。

我不確定文件大小是否重要,因爲我在NSURLCache文檔中沒有找到與大小有關的任何參考。另一個觀察結果是在加載鏈接資源之前調用了「didFinishLoadForFrame」委託。

感謝您在這方面的任何幫助,

感謝,

Jimesh

回答

0

是,文件大小事宜。緩存的標準行爲是不存儲大於緩存大小的5%或10%的任何內容。將緩存的大小增加至少比緩存大兩個數量級,並且可能「正常工作」。

如果這不起作用,它可能表示服務器爲該文件發回的緩存策略不允許緩存。

如果這不是問題,請更新您的問題,使用未被緩存的文件的URL以及顯示如何配置緩存大小的代碼片段。

相關問題