문제

기본적으로 나 PHP 페이지를 호출하는 일부를 다른 HTML 을 렌더링을 통해 개체의 방법입니다.그것은 다음과 같습니다:

내 PHP 페이지:

// some content...

<?php
    $GLOBALS["topOfThePage"] = true;
    $this->renderSomeHTML();
?>

// some content...

<?php
    $GLOBALS["topOfThePage"] = false;
    $this->renderSomeHTML();
?>

첫 번째 메소드 호출 캐시되지만,필요 renderSomeHTML()를 표시하는 약간 다를 기반으로 그 위치에서 페이지입니다.나는 시도를 통과하$GLOBALS,그러나 값이 변경되지 않은,그래서 나는 가정이 받고 캐시됩니다.

이것이 가능하지 않은 전달하지 않고 인수를 통해 방법에 의해 또는 캐싱하지 않은?어떤 도움에 감사드립니다.이것은 내 응용 프로그램-그것은 Magento.

편집:

이 젠토,그리고 그것을 사용하여 memcached.내가 전달하려는 인수를 통해 renderSomeHTML(),그러나 내가 사용하는 경우 func_get_args()을 PHP 포함하여 렌더링 되는 것이지 내가 무엇이 들어갔습니다.

편집:

더 라인 할 수 있었다"무효화"캐쉬를 호출하여 다른 방법을 뽑아 동일한 콘텐츠를 전달하는 인수 꺼 캐싱이 가능합니다.셔서 감사합니다 모든 사람들이 도움이됩니다.

도움이 되었습니까?

해결책

분명히,당신은 할 수 없습니다.전체 점의 캐싱하는'것'당신 캐시를 변경하려고하지 않습니다.그래서 당신은 하나:

  • 매개 변수를 제공
  • aviod 캐싱
  • 무효화 캐시 설정할 때 다른 매개변수

또는,당신을 다시 캐시 메커니즘이 자신을 지원하는 동적 구속력이 있습니다.

다른 팁

Chaching 는 다르게 처리해 다양한 프레임워크,그래서 당신이 우리를 도와 함께 일부습니다.하지만 나 또한 궁금하신 경우 통과할 수 있었는 매개 변수로 사용하는 대신 $GLOBALS.

$this->renderSomeHTML(true);

당신의 질문에 보이 불분명하지만,캐싱 꽤 많은 것을 의미'저장 그래서 우리가 계산할 필요가 없이 그것을 다시'.당신이 원하는 경우 내용을 다해야 합 캐시 더 많은 결과를 선택하고 올바른 캐시 개체 중 하나를 다시 보낼.

자세한 정보가 필요하게 더 나은 대답합니다.무엇이 문서를 캐싱,스마티?그리고 당신은 무엇을 의미로"위치에서 페이지"?무엇이'it'?

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top