我们显示对我们应用程序的反馈,但我们只想显示 10% 的用户。例如:如果用户总数为 1000 并且反馈应该只显示给 100 个用户。
有什么想法实现它的逻辑吗?
提前致谢
我们显示对我们应用程序的反馈,但我们只想显示 10% 的用户。例如:如果用户总数为 1000 并且反馈应该只显示给 100 个用户。
有什么想法实现它的逻辑吗?
提前致谢
尝试使用以下random
方法:
if(Math.random()<0.1) {
// show feedback
}
此代码生成一个从 0 到 9 的随机数,如果随机数为 0(10% 的机会),则可以添加反馈代码。
var randomnumber=Math.floor(Math.random()*10)
if (randomnumber == 0)
{
// do something
}
如果您真的非常需要它精确到 10%,而不是大约 10%,您可以保留一个静态计数器变量,每次新会话开始时都会增加该变量。当它达到 10 时,询问用户反馈并将计数器重置为 1。
但是,您可能需要同步对变量的访问,以防止不同线程上的请求同时对其进行操作,如果您要处理大量请求,这可能是性能瓶颈。
除非您有充分的理由,否则使用其他人建议的随机数方法可能要容易得多。
我认为你需要考虑清楚这一点——在路上,你可能希望你做的不仅仅是“随机显示到 10%”。
如果您正在谈论使用经过身份验证的用户的应用程序,并且如果有任何潜在需要分析/理解那 10% 的响应,那么您应该执行以下操作:
在您的数据库中,您可以进行如下查询
SELECT TOP X PERCENT select list
FROM TableName
这样,您只能从 DB 中获取 10% 的记录并将它们显示在反馈模块上。
希望这就是你要找的。
我以前发现有用的一种模式是在会话开始时“标记”一些用户(根据您所需的分布随机)。然后详细记录标记用户对您的应用程序所做的一切。他们给出的任何反馈都可以放在上下文中。至于机制,我会为初始会话标记使用过滤器,然后在屏幕顶部为标记的用户显示一个不显眼的栏,提示他们(很好地)提供反馈。确保栏有一个关闭按钮。