2012-02-03 5 views
25

Android webview에서 모바일 웹 페이지 및 비 모바일 웹 페이지를 빠르게로드하는 방법은 무엇입니까? 로딩 캐시 또는로드 전혀?Android webview에서 캐싱

로드하는 데 권장되는 스타일은 무엇입니까?

현재 캐시를로드하지 않을 때 모바일 사이트가 아닌 경우 사이트를 기본 브라우저로로드 할 때보 다로드 속도가 훨씬 느립니다.

답변

32

다음을 사용하지 마십시오 :

viewer.getSettings().setAppCacheMaxSize(1024*1024*8); 
viewer.getSettings().setAppCachePath("/data/data/com.your.package.appname/cache"‌​);  
viewer.getSettings().setAppCacheEnabled(true); 

는 이러한 기본 웹뷰 내부 캐시와는 아무 상관이 없습니다. Appcache는 인터넷 연결없이 웹 사이트를 실행할 수있게하는 완전히 다른 기능입니다. 그것은 위대한 작품이 아니며 아마 그것을 사용하고 싶지 않을 것입니다.

설정시 : viewer.getSettings().setCacheMode(WebSettings.LOAD_DEFAULT)이면 충분합니다.

+6

AppCache를 설명하는 문서에 대한 링크를 가지고이를 백업 할 수 있습니까? 'LOAD_DEFAULT'에 단어 "default"가 있다고 가정하면 분명히 다른 곳에서 다른 값을 설정하지 않았다면 답안의 마지막 줄은 아무 것도하지 않습니다. –

+2

setAppCacheMaxSize가 api 18.에서 더 이상 사용되지 않습니다. http://developer.android.com/reference/android/webkit/WebSettings.html#setAppCacheMaxSize(long)] –

+0

@ ed-hinchliffe Google 자체에서 이에 대한 좋은 문서를 찾기가 어렵습니다. 하지만 그들은이 문서의 https://docs.webplatform.org/wiki/tutorials/appcache_beginner를 Google 크롬 WebView : https://developer.chrome.com/multidevice에서이 게시물의 "오프라인으로 작업"섹션에서 참조합니다./android/overview. 또한 대답의 마지막 줄에 아무런 의미가 없다는 점에서 당신은 맞습니다. – Nilzor

13

물론 캐시 된 접근 방식이 더 빠릅니다. 바로 캐싱이 그 첫 번째 이유입니다.

하지만 웹보기에서 캐싱을 사용하지 않도록 설정하지 않는 한 괜찮습니다. 그렇지 않으면 기본적으로 캐시가 사용됩니다.

+11

감사합니다. 이 똑똑한 스타일로 캐시 할 것인가 아니면이 문제가 있습니까? viewer.getSettings(). setAppCacheMaxSize (1024 * 1024 * 8); viewer.getSettings(). setAppCachePath ("/ data/data/com.your.package.appname/cache"); viewer.getSettings(). setAppCacheEnabled (true); viewer.getSettings(). setCacheMode (WebSettings.LOAD_DEFAULT); – Eljas

+1

그래, 난 그걸로 아무것도 잘못 보지 않는다 (당신이 실제 코드에 실제 패키지 이름을 넣었다고 가정합니다 :)). 의심스러운 경우 크기로 재생하고 몇 가지 테스트를 수행하여로드중인 콘텐츠 유형에 가장 적합한 것을 확인하십시오. 페이지가 크고 다른 페이지를 많이로드하려는 경우 1Mb보다 큰 캐시가 필요할 수 있습니다. 텍스트가 대부분 텍스트이고 앱에 표시되는 숫자가 적다면 현재 설정으로는 문제가 없을 것입니다. –

+0

또한 대답이 만족 스럽다면 받아 들일만한 것으로 표시해보십시오. –

관련 문제