2011-08-19 3 views
3

지금 asp.net (Dotnetnuke) 프로젝트로 작업하고 있습니다. 페이지의 이미지를 동적으로 커질 필요가 있습니다. 버튼 (asp : Button)을 교체하는 동안 이미지가 페이지에서 동적으로 바뀔 수없는 경우가 있습니다. Ctrl + F5, 그것은 chage.My 질문입니다, C# 코드를 통해 캐시를 다시로드하는 방법은 무엇입니까?asp.net을 사용하여 페이지를 완전히 새로 고치려면 (Ctrl + F5)?

또 다른 문제는 때로는 데이터베이스에 일부 값을 저장하고 Ctrl + F5를 눌러 페이지를 변경할 때 Ctrl + F5를 눌러 페이지의 이미지를 바꾸는 것입니다. 그러나 Ctrl + F5를 클릭하면 취소 또는 다시 시도가있는 대화 상자가 표시됩니다. 버튼 (파이어 폭스와 ie에 bith). 그들 중 하나를 클릭하면 데이터베이스에 동일한 값을 저장합니다. 우리가 다시 페이지를 새로 고치면 databese의 값이 3 배가됩니다.

+0

이것은 carwash를 사용하여 머리카락을 감는 것과 같습니다.) javascript의 'location.reload()'를 사용하여 페이지를 새로 고칠 수는 있지만 브라우저 캐시에는 영향을주지 않습니다. 이미지에 HTTP 헤더를 설정하거나 다른 GET 문자열을 사용하여 이미지를 요청하여 브라우저 캐시를 방지 할 수 있습니다. – Blaise

+0

실제로 무엇을하려고하는지 설명하면 (예 : 최종 결과) 잠재적으로 더 나은 접근 방법에 대한 통찰력을 얻을 수 있습니다. – MoarCodePlz

+0

마지막으로 정확한 질문을 얻었습니다. 자바 스크립트 나 C#을 사용하여 캐시를 지우려면 어떻게해야합니까? –

답변

2

할 수 있습니다 명확하지 브라우저 cache.the만을 생각은 페이지로드에서 C# 코드에서 세션 변수를 선언하고 그 값이

if (!IsPostBack) 
      { 
Session["refresh"]="1" 
} 

은 당신이 세션 변수를 설정해야합니다 맨 처음에 1을 설정했습니다 이미지 업로드 버튼 이벤트 [ "refresh"] = "1" 새로 고침 버튼을 만듭니다. 버튼 이벤트에서 다음을 수행하십시오 업로드를 완료 한 후 새로 고침 버튼을 클릭하십시오. 그러면 Ctrl + F5로 작동합니다 button.if 새로 고침 버튼 이벤트에서 세션 값 0을 설정하지 않으면 마지막 이벤트가 다시 수행됩니다. 데이터베이스에 값을 입력하면 세션 변수 0을 설정하지 않으면 동일한 작업이 수행됩니다.

if(Session["refresh"].ToString()=="1") 
    { 
     Response.Write("<script type='text/javascript'>locaton.reload()</script>"); 
     Session["refresh"]="0"; 
    } 
2

JavaScript가 캐시를 덤프 할 수 없습니다. 죄송합니다. C#은 클라이언트가 아닌 서버를 실행하므로 도움이되지 않습니다.

당신은 페이지의 특정 항목에 대한 캐시를 중단 할 경우에 당신은 임의의 매개 변수

<img src="a.gif?x=123456"> (나는 시간 스탬프를 사용하려면) 추가 할 수 있습니다

또는,이 테스트의 목적을위한 경우 브라우저에서 캐시를 끄십시오.

+0

이미지가 dynamic.so 내가 above.How 자바 스크립트 또는 C#을 사용하여 캐시를 지우려면 사용할 수 없습니다? –

+0

답변 : 할 수 없습니다! –

1

사용자 컨트롤을 관리하여 웹 페이지의 다양한 부분에 대한 캐시 특성을 조작 할 수 있습니다. 또한 귀하의 페이지 지시어를 확인하십시오.

<%@ OutputCache Duration="#ofseconds" Location="Any | Client | Downstream | Server | None" Shared="True | False" VaryByControl="controlname" VaryByCustom="browser | customstring" VaryByHeader="headers" VaryByParam="parametername" %> 

ASP.NET의 캐싱 기능은 상당히 광범위합니다. 신청서를 공부하는 데 시간을 할애하길 권합니다. Directives; 주로 페이지와 컨트롤.

+0

자바 스크립트 또는 C#을 사용하여 캐시를 지우는 방법은 무엇입니까? –

+0

Dotnetnuke는 위의 캐싱 옵션을 제공하므로 cutom 코드에 대한 옵션이 제한되는 이유가 확실하지 않습니다. 나는 로컬에 캐싱되는 광고 광고에 문제가 있었고 위의 방법으로 해결되었습니다. 각 광고 공간은 자체 컨트롤이어야합니다. – Menefee

관련 문제