2013-07-20 3 views
0

Я пытаюсь создать веб-страницу, которая всегда будет перенаправлять пользователей на другие веб-страницы. Это увеличит вероятность перенаправления пользователей на 1 из 30 страниц с использованием JavaScript на основе оценок, которые импортируются из базы данных MySQL.Переадресация JavaScript на основе вероятности

Например, существует 30 возможных страниц, на которые пользователь может быть перенаправлен (A1.html, A2.html, A3.html ... и т. Д.).

Так, например, если информация базы данных MySQL для пользователя был:

A1 = 0, A2 = 6, А3 = 10, A4 = 8

Пользователь не будет иметь никаких шансов быть перенаправлен на A1.htm, умеренная вероятность перенаправления на A2.htm, более высокая вероятность перенаправления на A4.htm и высокая вероятность перенаправления на A3.htm.

Получение данных MySQL на веб-странице не является проблемой, я просто не нахожу себя способным отказаться от способа написания JavaScript, который достигнет этого результата. Я весь день занимаюсь этим, но у меня нет никакого рабочего решения.

Если кто-нибудь может мне помочь, я был бы очень благодарен. Большое спасибо! :)

+0

Интересная проблема! Мое безумие возьмется за это, это будет сумма A1 до A4 (= 24), а затем перейдите через цикл, количество раз используя math.random(), чтобы заполнить массив из 24 элементов, сохранив первые шесть ответов .2, первая десятка. 3 ответа, первые восемь ответов .4. Затем я получаю окончательное случайное число, чтобы решить, какой из 24 членов массива использовать. Я не теоретик-математик, поэтому я понятия не имею, будет ли результат действительно случайным. – Terry

ответ

0

Вы можете создать массив с количеством записей, основываясь на количестве предпочтений, а затем вставить случайное число между 0 и число элементов - 1. Что-то вроде:

var likeness=[A2,..(6 times), 
A3,...(10 times), 
A4,...(8 times)]; //A1 is 0 so no entry for him 

var totalElements=likeness.length; 

затем выбрать случайное число между 0 и числом элементов:

var randomNumber=Math.floor(Math.random()*totalElements); 

последним вы извлечением предполагаемой страницей

var urlRedirect=likeness[randomNumber]; 
0
for (var i=0; i<totalURLs; i++) { 
    likes = getLikes(i); 
    destinationURL = getURL(i); 

    for(var ii=0; ii<likes; ii++) { 
     probabilityField.push(destinationURL); 
    } 
} 

var chance=Math.floor(Math.random() * probabilityField.length); 

window.location.replace(probabilityField[chance]); 
Смежные вопросы