2017-01-12 5 views
0

내가 다른 시간에로드지시 브라우저 캐시는

<iframe src="www.URL.com?name=benny&runtime=1231231> 
<iframe src="www.URL.com?name=benny&runtime=757847584> 

브라우저에서 동일한 캐시 값에 매핑 할 수있는 두 개의 iframe을 원하는 PARAMS. 서버는 이와 관련이 없습니다. 기본적으로, 크롬, 파이어 폭스 등을 가질 수있는 방법이 있나요? 캐시 api는 src를 찾을 때 특정 매개 변수 (이 경우 '런타임')를 무시합니다.

별도의 PARAM을 전달 또는 런타임에 대한 별도의 호출이 불가능하다 유스 케이스

+0

'www.URL.com? name = benny & runtime = 1231231'과'www.URL.com? name = benny & runtime = 757847584'가 동일한 리소스를 가리키는 경우 왜 처음에는 'runtime' 매개 변수가 필요합니까? 이 URL에서'runtime' 매개 변수를 제거해야합니다. –

+0

Leonid 예를 들어, 런타임 실제로 매개 변수가되지 않습니다 – BYC

답변

0

에서 작동하지 않습니다 만들기. src에서 다른 값을 가진 매개 변수를 제거하거나 XMLHttpRequest 및 blob을 사용하여 리소스를 요청하고 JavaScript를 사용하여 요청 URI에서 매개 변수를 제거해야합니다. XMLHttpRequest을 사용할 경우 동일한 출처 정책을 고려해야합니다.

브라우저 캐시 키는 HTTP 메소드와 URI의 조합입니다. 쿼리 매개 변수는 URI의 일부입니다. 관련 발췌 부분 HTTP 1.1 specification :

기본 캐시 키는 요청 방법과 대상 URI로 구성됩니다. 그러나 오늘날 일반적으로 사용되는 HTTP 캐시는 GET에 대한 응답을 캐싱하기 위해 일반적으로 으로 제한되어 있기 때문에 많은 캐시는 다른 방법 인 을 거부하고 기본 캐시 키로 URI 만 사용합니다. 에릭 Bidelman, XMLHttpRequest page, Blob Web APIs page 및 MDN에 Same-origin policy page 더 많은 정보를 확인 New Tricks in XMLHttpRequest2 article를 들어

.

리소스를 제공하는 서버를 제어하는 ​​경우 특정 매개 변수로 캐시 항목을 변경하도록 리소스를 조정할 수도 있습니다. 예를 들어, ASP.NET MVC에서 OutputCache 속성의 VaryByParam 속성을 사용할 수 있습니다. 자세한 내용은 Microsoft ASP.NET 팀의 Improving Performance with Output Caching article을 확인하십시오.

+0

솔루션을 변경하려면 무엇입니까? 캐시가 캐시를 따르는 모든 것을 무시하기 때문에 #에 #! – BYC

+0

'? '는 URI의 쿼리 구성 요소의 시작을 나타냅니다. '# '은 프래그먼트 구성 요소의 시작을 나타냅니다. 엄밀히 말하자면, 브라우저 HTTP 캐시는 프래그먼트를 무시하지 않고 브라우저가 전송하지 않습니다. 질의와 조각은 다른 것들이며 다른 목적을 위해 존재합니다. 자신의 경우 조각이 적절한지를 이해하려면 [query] (https://tools.ietf.org/html/rfc3986#page-23)와 [fragment] (https://tools.ietf.org/html)를 확인할 수 있습니다./rfc3986 # page-24) 섹션을 참조하십시오. –