사용자가 페이지에 액세스 할 때마다 지나치게 호출되는 로더 기능이 있습니다. 물론, 페이지 요청 당 한 번만 실행하면됩니다. 대신 여러 번 호출됩니다. 이전에 _load()는 MENU_CALLBACK으로 두 번만 실행되었지만 기본 MENU_NORMAL_ITEM으로 테스트 한 결과 4로 증가했습니다. 다시 변경하고 캐시를 지웠지 만 지금은 4 번 실행되며 한 번만 실행되기를 원합니다.와일드 카드 로더 함수가 여러 번 호출 됨 (_load)
제 질문은 제 로더 기능이 여러 번 호출되는 이유는 무엇입니까? 어떤 통찰력이라도 대단히 감사하겠습니다.
$items['daycare/%isValid/home'] = array(
'title' => 'Daycare Admin Home',
'page callback' => 'daycares_home_page',
'load arguments' => array(0),//Passes 1st part of url 'daycare' as 2nd arg
'page arguments' => array(0),
'access arguments' => array('access content'),
'type' => MENU_CALLBACK,
);
function isValid_load($pageID, $pageType){
/*Do stuff to validate wildcard part of URL. Will throw 404/403 if invalid*/
return $pageId;
}
답변은 여전히 매우 유용합니다! 감사합니다 Nmc. 역 추적을 사용해 보겠습니다. 나는 단지 성과에 관심이 없다. _load() 내에서 처리 할 작업은 매우 간단한 쿼리입니다. 그래도 나중에 사용할 수 있도록 북마크에 추가했습니다. :) – SFox
또 다른 옵션은 xdebug를 구성하고 디버거를 통해 코드를 푸는 것입니다. 가끔은 약간 까다로울 수 있습니다. 그런 다음 와일드 카드 로더에 중단 점을 지정하고 값을 검사하고 호출 스택을 조사 할 수 있습니다. – iainp999