Vra

Ek moet in staat wees om inhoud binne 'n plekhouer div gebaseer op persentasie soos hierdie draai. Die rotasie sal plaasvind op bladsy laai. So elke keer as 'n gebruiker herlaai 'n bladsy wat hy het hierdie kans sien inhoud 1, 2 of 3 in die inhoud plekhouer:

Content 1 = wys 50% van die tyd
Inhoud 2 = wys 25% van die tyd
Inhoud 3 = wys 25% van die tyd

Ek verkies Javascript maar as daar 'n makliker manier om dit te doen in ASP.NET op die voorkant sjabloon nie die codebehind, dit is ook aanvaarbaar. As jy 'n oplossing het of kan my verwys na 'n bestaande script sal ek dit waardeer. Dankie!

Was dit nuttig?

Oplossing

Daar is regtig nie nodig om te vermeerder / vloer / oordek enigiets:. Die Math.random() funksie gee waarde wat groter as of gelyk aan 0 en kleiner as 1

Die volgende kode sal 'n bietjie makliker wees om in stand te hou as jy die aantal opsies of die kans persentasie verander.

var contentId, random = Math.random();

if (random < 0.5) {
  // option 1: chance 0.0–0.499...
  contentId = 0;
} else (random < 0.75) {
  // option 2: chance 0.50—0.7499...
  contentId = 1;
} else {
  // option 3: chance 0.75–0.99...
  contentId = 2;
}

loadContent(contentId);

Ander wenke

Vir die ewekansige deel van die script, jy moet net om te speel met Math.random Iets lelik en hardcoded sou lyk:

var contentToShow = -1;
var NB_MAX = 4;
var myRand = Math.floor(Math.random()*NB_MAX);
if(myRand<1) contentToShow = 1;
else if (myRand<2) contentToShow = 2;
else contentToShow = 3;

Toe jy net moet die inhoud met Ajax laai.

'n exemple in jQuery kon lyk:

var myPlaceHolder = $("#myPlaceHolder")
$.myPlaceHolder.load("/mycontents/mycontent_" + contentToShow + ".asp");

Maar die gebruik van Ajax versoek op 'n bladsy laai is nie die manier om imo gaan. (2 bediener versoek in plaas van 1 as die ewekansige inhoud hanteer word deur die bediener)

Hier is 'n vinnige hack, daar is waarskynlik 'n beter manier.

var randomnumber=Math.floor(Math.random()*4)
if((num==0) || (num==1)) {
//show hidden div or document.write (50% probability)
} else if (num==2) {
//show hidden div or document.write (25% probability)
} else {
//show hidden div or document.write (25% probability)
}
Gelisensieer onder: CC-BY-SA met toeskrywing
Nie verbonde aan StackOverflow
scroll top