我有一个横幅广告网络,通过一些JavaScript代码。如下所示:
<script src="........."</script>但我有太多重复的观点。
所以我只想在页面加载的10%时间内显示横幅。
有什么简单的解决办法吗?我没有JavaScript知识。
发布于 2021-10-03 12:03:13
你可以创建一个随机数,并检查它是否小于范围的10%。
if (Math.random() <= 0.1) {
showAds();
}测试
let runs = 0;
let ads = 0;
function showAds() {
++ads;
}
for (let i = 0; i < 1e6; ++i) {
++runs;
if (Math.random() <= 0.1) {
showAds();
}
}
console.log(`Runs: ${runs}`);
console.log(`Ads were shown: ${ads}`);
console.log(`${ads/runs * 100} %`);
发布于 2021-10-03 13:07:33
您可以创建一个计数器,该计数器被保存到本地存储(在web浏览器中,因此即使在重新加载页面后也会维护它)。
它可以从0开始,然后在每次重新加载时上升1,直到它在达到9时被重置。
如果计数器为0,则可以将其设置为只运行横幅。
<script type="text/javascript">
let counter = localStorage.getItem("counter") ?? 0;
if (counter == 0) {
// code placed here will run only on the first of every 10 pageloads
}
if (counter >= 0) {
newCount = (counter == 9) ? 0 : ++counter;
localStorage.setItem("counter", newCount);
}
</script>https://stackoverflow.com/questions/69424580
复制相似问题