2013-12-23 3 views
0

사용자가 연 특정 Visualforce 페이지의 수를 계산하는 프로세스를 이해해야합니다. 이 질문에 대한 이유는 내가 사용자가 주로 사용하는 페이지가 무엇인지 알아 내고 그것을 향상시켜 사용자의 삶을 더 쉽게 만들 수 있는지 확인하는 것입니다 :).사용자가 Visualforce 페이지를 연 횟수를 계산하는 방법은 무엇입니까?

내가 아는 것은 페이지가로드 될 때 어떤 종류의 기능을 사용해야한다는 것입니다. 다른 방법이 있다면 그것을 이해하고 싶습니다. 궁금한 점이 있으시면 언제든지 물어볼 수 있습니다.

+0

이 질문을 [salesforce.stackoverflow.com] (salesforce.stackoverflow.com) –

답변

0

서버 측

VF 페이지 컨트롤러 (사용자 정의 컨트롤러 모두와 확장은) 모든 DML 작업을 실행할 수 없습니다. 그 뒤에있는 추론은 다소 단순합니다 - 지정된 페이지로 이동하는 것과 일부 데이터를 읽는 것은 DB 업데이트와 같은 부작용이 없어야합니다. 따라서 일부 데이터를 저장하려는 경우이 페이지에서 호출 된 작업이나 <apex:page ... action="{!doSomething}">에서 수행하는 것이 좋습니다. 그러나 action 매개 변수는이 (제정 된) 제한 사항에 대한 불쾌한 해결 방법이기 때문에 눈살을 찌푸 리게됩니다. SF 보안 검토 또는 Checkmarx 코드 품질 검토에 코드를 제출하려는 경우 이는 지적 될 것입니다. 클라이언트 측

가 사이드 바에 또는 VF 페이지에 자바 스크립트 중 일부 추적을 설치

. (이 JS는 RemoteAction 또는 이와 비슷한 것을 action의 대안으로 사용할 수도 있습니다).

Google 애널리틱스를 살펴볼 수도 있습니다 (합계 상위 10 개 방문 페이지가 좋거나 사용자 당 필요한 것이 있다면 다름). 언급 @ jordan.baucke으로

- Salesforce.StackExchange.com에 교차 게시 : 자바 스크립트, 글로벌 변수 및 객체와 일부 아약스 호출 (RemoteAction)와

+0

에 보내 주셔서 감사합니다. 그게 큰 팁 이었어. – user3116

0

그것의 간단한을 시도합니다. 샘플 코드는 다음과 같습니다.

<script src="http://code.jquery.com/jquery-1.10.2.min.js"/> 
<script> 
    var j$ = jQuery.noConflict(); 
    j$(document).ready(function(){ 
     var userID = '{!userInfo.getUserID}'; //Gets user ID 

     Visualforce.remoting.Manager.invokeAction(
      '{!$RemoteAction.ClassName.MethodName}', //Method where you increment the click counter stored in the record for that object 
       userID, 
       //Function on completion 
     ); 
    }); 
</script> 

그러나 페이지로드시 DML/SOQL을 수행하지 않는 것이 좋습니다.

관련 문제