我需要了解我們如何計算用戶打開的特定視覺頁面的數量的過程。這個問題的原因是看我能否找出用戶最常使用的頁面,並加以改進,以便讓用戶的生活更輕鬆:)。如何統計用戶打開的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) –