상당히 직설적입니다. 이것은 'memcache'형식으로 개체를 저장할 수있는 리터럴 클래스 도우미입니다. 먼저 우리가 키가 의미 정확한 값을 (우리가 이전에 선언 된)를 사용하여 언제든지 액세스 할 수 있습니다, 우리는 우리의 트리거를 만들었으므로 이제 과도
function do_something_here($callback_param = 'value'){
$key = 'do_something_' . $callback_param;//set the name of our transient equal to the value of the callback param being passed in the function.
$my_query = get_transient($myKey); //if we've stored this request before, then use it.
if($my_query !=== false){
//we found a previous existing version of this query. let's use it.
return $my_query;
}else{
//it doesn't exist, we need to build the transient.
//do our database querying here, global $wpdb; etc
//We are going to pretend our returned variable is 'george'
$value = george;
$length = 60*60*24; //how long do we want the transient to exist? 1 day here.
set_transient($key, $value, $length);
return $value;
}
}
을 설정하고 '$ 키'의 이름에 바인딩 .
echo 'I wanted to do something, so : ' . do_something('value') . ' is what i did! ';
이 형식을 사용하면 세계와 같은 '캐시'에서 검색어를 보유하고이를 사용하여 응답을 생성 할 수 있습니다. 이것은 MySql에서 '트리거'이벤트를 사용하는 것과 비슷합니다. 실제로 이것은 긴 폴링 (long polling)이라고하는 기술의 일부입니다.
답장을 보내 주셔서 감사합니다. 하지만 질문은 또 다른 하나, 당신을 오해하게해서 유감 : 간단한 WP_Query()보다 일시적 효과를 사용하고 있습니까? 내 상상력에서 일시적 사용은 WP_Query ('cat = 32')를 통해 게시물을 선택하는 것보다 더 많은 자원과 쿼리가 필요합니다. – Phil
방법 및 데이터에 따라 다릅니다. 크고 시간이 많이 소요되는 쿼리가 있으면이를 임시로 저장할 수 있습니다. 그런 다음 데이터베이스에 쿼리 할 필요가없는 일시적인 호출을 사용하여 해당 값을 항상 사용할 수 있습니다. 단순히 값 변경을 모니터링합니다. 내가 언급 한 것처럼 그것은 memcache와 조금 비슷하게 작동합니다. 여기서 과도기는 많은 쿼리가 진행되는 사이트 및 여러 데이터에 사용하는보다 효과적인 방법입니다. 또는 푸시 기술 (Long Polling, Comet 등)과 같은 것들을 필요로하는 사이트의 경우 -> http://en.wikipedia.org/wiki/Push_technology – Ohgodwhy
그러나 쿼리가 "거대한"경우와 일시적인 " 거대한 "쿼리 자체에 비해? 즉 조인 또는 서브 쿼리가없는 단 하나의 테이블에서 5 개의 게시물을 선택하는 경우 : 선택된 게시물 5 개가 동일하게 유지 되더라도 과도기에서 결과를 캐싱하고 일시적 요청을하는 것보다 일반 쿼리가 더 빠르고 효율적이지 않습니까? – Phil