2013-03-31 5 views
1

Просто задал свой первый вопрос и получил отличный ответ. Настолько полезно. Помогло мне создать этот бит javascript для создания двух случайных чисел на одной странице.Более быстрая обработка javascript

<script> 
window.onload = function(){ 
generateRandomNumber1(); 
generateRandomNumber2(); 
}</script> 

<script> 
function generateRandomNumber1(){ 
var n = 30; 
var number = Math.floor(Math.random()*n)+1; 
document.getElementById("random1").innerHTML = number; 
} 

function generateRandomNumber2(){ 
var n = 15; 
var number = Math.floor(Math.random()*n)+1; 
document.getElementById("random2").innerHTML = number; 
} 
</script> 

также использовать этот бит сценария, чтобы показать две дивы на временной задержки:

<script> 
var toggle = function() { 
$("#loadingContainer1").show(); 
} 
setTimeout(toggle, 1000); 
</script> 
<script> 
var toggle = function() { 
$("#loadingContainer1").hide(); 
} 
setTimeout(toggle, 8000); 
</script> 
<script> 
var toggle = function() { 
$("#loadingContainer2").show(); 
} 
setTimeout(toggle, 7000); 
</script> 
<script> 
var toggle = function() { 
$("#loadingContainer2").hide(); 
} 
setTimeout(toggle, 14000); 
</script> 

Действительно громоздким, я знаю, но это работает, и я очень доволен собой для работая большую часть этого из себя (с большой помощью из чужих потоков на переполнение стека).

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

Большое спасибо.

ответ

2

Существует много грязного кода, но, возможно, это связано с тем, что onload не срабатывает, пока страница полностью не загрузится, что она медленная. Ниже приведен код вашего кода для лучшей работы:

<script type="text/javascript"> 
    $(function() { // uses jQuery's "ready" handler 
     $("#random1").html(Math.floor(Math.random()*30)+1); 
     $("#random2").html(Math.floor(Math.random()*15)+1); 
     $("#loadingContainer1").delay(1000).fadeIn(0).delay(7000).fadeOut(0); 
     $("#loadingContainer2").delay(7000).fadeIn(0).delay(7000).fadeOut(0); 
    }); 
</script> 

Надеюсь, это поможет!

+0

или, может быть, загрузка не кэшированного jQuery сама делает страницу медленной :-) –

+0

@ JanTuroň Если это была проблема, тогда часть show/hide не будет «раньше», там будут цифры. –

+0

Замечательный. Огромное спасибо. «Мессиальный код» должен быть моим именем. У меня, честно говоря, нет первой подсказки о том, как писать javascript, у меня есть достаточно смысла, чтобы иметь возможность редактировать важные переменные в скрипте Java, но я даже не знаю, как начать писать. Весь мой код булыжник вместе с битами и бобами, которые я взял. Хотел бы я знать больше, чтобы я мог делать то, что ты сделал, и консолидировать все это, я ненавижу быть беспорядочным. Спасибо, в любом случае, это сработало отлично. –

 Смежные вопросы

  • Нет связанных вопросов^_^