2012-09-11 67 views
0

我們對我們的應用程序顯示反饋,但我們只想顯示只有10%的用戶。 例如:如果總用戶數爲1000,並且只能向100個用戶顯示反饋。在網絡應用程序中的隨機反饋

是否有任何想法實現它的邏輯?

在此先感謝

+0

你想隨機顯示或抓取記錄????這是重要的 –

回答

2

嘗試使用random方法:

if(Math.random()<0.1) { 
    // show feedback 
} 
+0

雅我試過這段代碼,但這是否會工作完美嗎? – Santhosh

+0

是的,它保證完美地工作! – ColinE

+2

如果它不起作用,科林將親自開車到您的辦公室並修復它! – nnnnnn

0

在你的數據庫,你可以查詢像

SELECT TOP X PERCENT select list 
FROM TableName 

而且這種方式可以獲取只有10%的記錄從DB並將它們顯示在反饋模塊上。

希望這是你要找的。

0

我之前發現有用的模式是在會話開始時(隨機根據您所需的分配)「標記」一些用戶。然後詳細記錄標籤用戶使用您的應用程序所做的一切。他們給出的任何反饋都可以放在上下文中。至於這個機制,我會用一個過濾器進行初始會話標記,然後在屏幕頂部顯示一個不顯眼的欄,以便標記用戶提示他們(很好地)提供反饋。確保酒吧有一個關閉按鈕。

0

該代碼生成一個從0到9的隨機數,如果隨機數爲0(10%的機率),則可以添加反饋代碼。

var randomnumber=Math.floor(Math.random()*10) 
if (randomnumber == 0) 
{ 
    // do something 
} 
+0

恩 - 爲什麼這比測試是否隨機()<0.1'好? – ColinE

+0

哎呀..我發佈的時間還有很多更多的答案..這是幾乎相同的ColinE的解決方案 – ddb

+0

是的..同意。在stackoverflow中更新速度太快..看到,我輸入我的時間,你的評論:)。對不起,這是 – ddb

0

如果你真的需要它正好是10%,而不是10%左右,你可以繼續你增加每次啓動新會話靜態計數器變量。當它達到10時,請求用戶提供反饋並將計數器重置爲1.

但是,您可能需要同步對該變量的訪問以防止不同線程上的請求一次操作,這可能是如果您正在處理大量請求,則會出現性能瓶頸。

除非您有充分的理由,否則使用其他人建議的隨機數方法可能會更容易。

0

我認爲你需要考慮這一點 - 在路上,你可能希望你做的不僅僅是「隨機顯示10%」。

如果你談論的是一個使用身份驗證的用戶,如果有任何潛在需求在所有分析/理解的是10%的響應的應用程序,那麼你應該做到以下幾點:

  1. 在您的數據庫中創建一個新列或表格,指定每個用戶爲(true)或out(false)爲您的反饋顯示
  2. 使用此列作爲查詢的基礎,以確定您向誰顯示消息
  3. 確保將該反饋請求的結果寫回數據庫。
相關問題