我需要了解我们如何计算用户打开的特定视觉页面的数量的过程。这个问题的原因是看我能否找出用户最常使用的页面,并加以改进,以便让用户的生活更轻松:)。如何统计用户打开的visualforce页面的次数?
我知道的是我们需要在页面加载时使用某种功能。如果有任何其他的我很想理解它。如果您有任何问题,请随时提问,我知道有时候我们不能写下我们脑海里想写的东西。
我需要了解我们如何计算用户打开的特定视觉页面的数量的过程。这个问题的原因是看我能否找出用户最常使用的页面,并加以改进,以便让用户的生活更轻松:)。如何统计用户打开的visualforce页面的次数?
我知道的是我们需要在页面加载时使用某种功能。如果有任何其他的我很想理解它。如果您有任何问题,请随时提问,我知道有时候我们不能写下我们脑海里想写的东西。
服务器端
VF页面控制器(包括自定义控制器和扩展)不允许运行任何DML操作。这背后的理由很简单 - 只是导航到给定页面,也许读取一些数据不应该有像数据库更新的副作用。所以如果你想保存一些数据 - 你可以在这些页面或<apex:page ... action="{!doSomething}">
中调用的动作中进行。但action
参数令人不悦,因为这是一个令人讨厌的解决方法(理智)限制。如果您打算将代码提交给SF安全审查或Checkmarx代码质量审核 - 将会指出。
客户端
安装一些跟踪的JavaScript或者到侧边栏或进入VF页。 (这个JS甚至可以做RemoteAction或类似的东西,作为action
的替代品)。
您还可以看一下Google Analytics(取决于您访问的页面总数最多的10个访问页面,或者您需要每个用户的东西)。
正如@ jordan.baucke提到的 - 尝试在Salesforce.StackExchange.com交叉发布:)
中提出此问题谢谢!这是一个伟大的提示。 – user3116
其简单的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页加载。
您应该考虑在[salesforce.stackoverflow.com](salesforce.stackoverflow.com) –