2012-09-11 5 views
0

우리는 우리의 응용 프로그램에 대한 피드백을 보여 주지만 사용자의 10 % 만 보여주고 싶습니다. 예 : 총 사용자 수가 1000 명이고 피드백이 100 명의 사용자에게만 표시되어야하는 경우.웹 응용 프로그램의 무작위 피드백

구현할 논리가 있습니까? 사전에

감사

+0

무작위로 표시하거나 무작위로 레코드를 가져 오시겠습니까? 이것은 중요합니다 –

답변

2

random 방법을 사용해보십시오 : 당신은 쿼리와 같은

SELECT TOP X PERCENT select list 
FROM TableName 

을 가질 수 있습니다 그리고이 방법은 당신이 기록의 10 %를 가져 오기 할 수 있습니다 데이터베이스에서

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

나중에이 코드를 시도했지만 이것이 완벽하게 작동합니까? – Santhosh

+0

예, 완벽하게 작동합니다. – ColinE

+2

작동하지 않는다면 Colin은 개인적으로 사무실로 가서 고칠 것입니다! – nnnnnn

0

을 DB에서 가져 와서 피드백 모듈에 표시하십시오.

희망이 당신이 원하는 것입니다.

0

이전에 유용했던 패턴은 세션 시작시 임의의 사용자에게 (필요한 배포판에 따라) "레이블을 지정"하는 것입니다. 그런 다음 레이블이있는 사용자가 응용 프로그램에서 수행하는 모든 작업을 자세히 기록하십시오. 그들이 제공 한 피드백은 상황에 맞출 수 있습니다. 이 메커니즘에 관해서는 초기 세션 라벨링을위한 필터를 사용하고 나서 피드백을 제공하는 라벨이 붙은 사용자를 위해 화면 상단에 눈에 잘 띄지 않는 막대를 표시합니다. 막대에 닫기 버튼이 있는지 확인하십시오.

0

이 코드는 0에서 9까지 임의의 숫자를 생성하고 임의 번호가 0 (기회가 10 %)이면 피드백 코드를 추가 할 수 있습니다.

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

erm - 왜'random() <0.1'인지 테스트하는 것보다이게 낫지? – ColinE

+0

죄송합니다. 내가 게시 할 때까지 더 많은 답변이 있습니다. 이것은 ColinE의 솔루션과 거의 동일합니다. – ddb

+0

예. 동의했습니다. 업데이트 stackoverflow에서 너무 빠릅니다. 참조하십시오, 나는 내 입력 한 시간에 귀하의 의견을 가지고 :). 미안해. – ddb

0

당신이 정말로, 정말로 오히려 약 10 %보다 정확히 10 %해야하는 경우, 당신은 당신이 때마다 새로운 세션이 시작을 증가 정적 카운터 변수를 유지할 수 있습니다. 10을 치면 사용자에게 의견을 물어보고 카운터를 1로 재설정하십시오.

그러나 다른 스레드에서 요청을 동시에 처리하지 못하도록하려면 변수에 대한 액세스를 동기화해야 할 가능성이 높습니다. 많은 요청을 처리하는 경우 성능 병목 현상이 발생합니다.

좋은 이유가 없으면 다른 사람들이 제안한 임의의 숫자 방법을 사용하는 것이 훨씬 쉽습니다.

0

나는 이것을 길 아래로 생각할 필요가 있다고 생각합니다. "무작위로 10 %로 표시"하는 것 이상의 것을 원할 수도 있습니다.

  1. :

    것은 당신이 인증 된 사용자를 사용하고, 분석 할 수있는 모든 잠재적 인 필요가있는 경우/그 10 %의 응답을 이해하는 응용 프로그램에 대해 얘기하는 경우에, 당신은 다음을 수행한다고 피드백 표시를 위해 각 사용자를 (true) 또는 out (false)으로 지정하는 데이터베이스에 새 열이나 표를 만듭니다.

  2. 메시지 표시 대상을 결정하기위한 쿼리의 기초로 사용하십시오.
  3. 해당 피드백 요청의 결과가 다시 데이터베이스에 기록되었는지 확인하십시오.