質問

このような割合に基づいて、プレースホルダーdiv内のコンテンツを回転できる必要があります。ページの読み込み時に回転が発生します。したがって、ユーザーがページをリロードするたびに、コンテンツプレースホルダーにコンテンツ1、2、または3が表示される可能性があります。

コンテンツ1 =時間の50%を表示
コンテンツ2 =時間の25%を表示
コンテンツ3 =時間の25%を表示

Javascriptの方が好きですが、ASP.NETでコードビハインドではなくフロントエンドテンプレートで簡単に実行できる方法があれば、それも受け入れられます。解決策がある場合、または既存のスクリプトを参照できる場合は、感謝します。ありがとう!

役に立ちましたか?

解決

実際に何も掛けたり、床を空けたりする必要はありません。 Math.random()関数は、0以上1未満の値を提供します。

次のコードは、オプションの数またはチャンスの割合を変更すると、メンテナンスが少し簡単になります。

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);

他のヒント

スクリプトのランダム部分については、Math.randomで遊ぶ必要があります。 いハードコーディングされたものは次のようになります。

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;

次に、ajaxでコンテンツをロードする必要があります。

jQueryの例は次のようになります。

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

しかし、ページの読み込み時にajaxリクエストを使用することは、goに行く方法ではありません。 (ランダムコンテンツがサーバーによって処理される場合、1ではなく2つのサーバーリクエスト)

こちらは簡単なハックです。おそらくもっと良い方法があります。

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)
}
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top