2013-12-23 53 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頁加載。

相關問題