2013-12-23 33 views
0

我需要了解我们如何计算用户打开的特定视觉页面的数量的过程。这个问题的原因是看我能否找出用户最常使用的页面,并加以改进,以便让用户的生活更轻松:)。如何统计用户打开的visualforce页面的次数?

我知道的是我们需要在页面加载时使用某种功能。如果有任何其他的我很想理解它。如果您有任何问题,请随时提问,我知道有时候我们不能写下我们脑海里想写的东西。

+0

您应该考虑在[salesforce.stackoverflow.com](salesforce.stackoverflow.com) –

回答

0

服务器端

VF页面控制器(包括自定义控制器和扩展)不允许运行任何DML操作。这背后的理由很简单 - 只是导航到给定页面,也许读取一些数据不应该有像数据库更新的副作用。所以如果你想保存一些数据 - 你可以在这些页面或<apex:page ... action="{!doSomething}">中调用的动作中进行。但action参数令人不悦,因为这是一个令人讨厌的解决方法(理智)限制。如果您打算将代码提交给SF安全审查或Checkmarx代码质量审核 - 将会指出。

客户端

安装一些跟踪的JavaScript或者到侧边栏或进入VF页。 (这个JS甚至可以做RemoteAction或类似的东西,作为action的替代品)。

您还可以看一下Google Analytics(取决于您访问的页面总数最多的10个访问页面,或者您需要每个用户的东西)。

正如@ jordan.baucke提到的 - 尝试在Salesforce.StackExchange.com交叉发布:)

+0

中提出此问题谢谢!这是一个伟大的提示。 – user3116

0

其简单的JavaScript,全局变量和对象和一些Ajax调用(RemoteAction)。示例代码将是:

<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页加载。

相关问题