2016-08-23 2 views

답변

27

액세스/바디

불투명 응답 주위에 가장 직접적인 제한은 headers처럼, 다시 Response 클래스의 properties의 대부분에서 의미있는 정보를 얻을, 또는 여러 가지를 호출 할 수 있다는 것입니다 또는 text()과 같이 Body 인터페이스를 구성하는 methods입니다. 이는 불투명 한 응답의 블랙 박스 특성과 일치합니다. 크로스 원산지 자원이 사용하는 브라우저가 허용 할 때마다

불투명 응답이 웹 페이지의 자원으로 사용할 수있는 페이지의 자료로 불투명 응답을 사용하여

. 여기 Mozilla Developer Network documentation 각색 출처 간 자원 및 그 불투명 응답이 유효하는 요소의 서브 세트가있다 :

  • <script>
  • <link rel="stylesheet">
  • <img>
  • , <video><audio>
  • <object><embed>

불투명 한 응답이 이 아니고이 유효하지 않은 유익한 사용 예는 font resources입니다.

일반적으로 페이지에서 특정 유형의 자원으로 불투명 한 응답을 사용할 수 있는지 여부를 판별하려면 관련 사양을 확인하십시오. 예를 들어, 누출 오류 정보를 방지하기 위해 몇 가지 제한이 있지만 <script> 요소에 대해 교차 원점 (즉, 불투명) 응답 인 HTML specification explains을 사용할 수 있습니다.

불투명 응답 & 캐시 스토리지 API

한 "잡았다"불투명 한 응답을 가진 개발자 might run intoCache Storage API로를 사용하여 포함 것이다. 배경 정보의 두 조각과 관련된 :

  • 불투명 한 응답의 status 특성에 관계없이 원래 요청 성공 또는 실패 여부에 always set to 0입니다.
  • Cache Storage API의 add()/addAll() 메소드는 요청의 응답으로 인해 2XX range에없는 상태 코드가 있으면 거부됩니다.이들 두 점에서

, 요청 불투명 응답하여 add()/addAll() 호출 결과의 일부로서 수행되는 경우, 캐시에 추가하지 않을 것이다 따른다.

fetch()을 명시 적으로 수행 한 다음, 불투명 한 응답으로 put() 메서드를 호출하여이 문제를 해결할 수 있습니다. 이렇게하면 캐싱중인 응답이 서버에서 반환 한 오류 일 수있는 위험에 효과적으로 빠질 수 있습니다.

const request = new Request('https://third-party-no-cors.com/', {mode: 'no-cors'}); 
// Assume `cache` is an open instance of the Cache class. 
fetch(request).then(response => cache.put(request, response)); 

불투명 응답 & navigator.storage의 API 도메인 간 정보의 누설을 방지하기 위해

(상당한 패딩 저장 용량의 한계를 계산하기 위해 사용되는, 불투명 한 응답의 크기에 첨가 거기 즉 QuotaExceeded 예외가 발생했는지 여부)를보고 navigator.storage API에 의해보고됩니다. 이 패딩의

세부 사항은 브라우저 브라우저에서 다양하지만, 구글 크롬, 이것은 단일 캐시 불투명 응답이 전체 스토리지 사용에 기여하는 최소 크기가 approximately 7 megabytes 있음을 의미합니다. 캐시하려는 불투명 한 응답의 수를 결정할 때는이 점을 명심해야합니다. 실제 불투명 한 자원의 크기에 따라 예상보다 훨씬 빨리 스토리지 할당량 제한을 쉽게 초과 할 수 있기 때문입니다.

+0

위대한 답변! 그러면 우리는 어떻게 글꼴을 다룰 수 있습니까? [DevTools 스크린 샷] (http://take.ms/6s3vU) – mu3

+0

[googlechrome.github.io]에서 답변을 얻었습니다 (https://googlechrome.github.io/samples/service-worker/selective-caching/service- worker.js), 요청을 복제하는 것을 잊었습니다. – mu3

+1

차가움. 당신도 그 샘플이 유용하다는 것을 알았 기 때문에 다행입니다! –

관련 문제