2012-11-27 33 views
5

Tôi đang phát triển một ứng dụng html5 và tôi muốn sau 8 giây viết địa điểm ngẫu nhiên, nó sẽ viết nếu bạn đã thắng hay không trong một giây và sau đó nó sẽ bắt đầu từ việc tạo ngẫu nhiên mới, tôi đã thử với nhưng nó không có vẻ làm bất cứ điều gì và nếu tôi viết trong khi (đúng) trình duyệt bị treo.javascript lặp mỗi 9 giây?

có cách nào để khắc phục sự cố không?

jQuery(document).ready(function(){ 
    ImageClicked = false; 
    for (var i=0;i<8;i++){ 
     var XYScore = 0; 
     var RandomPlace=Math.floor((Math.random()*10)+1); 
     var Place; 
     var WantedXPr; 
     var WantedYPr; 

     switch(RandomPlace){ 
      case 1: 
       Place="Berlin"; 
       WantedYPr=790; 
       WantedXPr=4300; 
       break; 
      case 2: 
       Place="New York"; 
       WantedYPr=1061; 
       WantedXPr=2345; 
       break; 
      case 3: 
       Place="barcelona"; 
       WantedYPr=1049; 
       WantedXPr=4046; 
       break; 
      case 4: 
       Place="Johannesburg"; 
       WantedYPr=2546; 
       WantedXPr=4618; 
       break; 
      case 5: 
       Place="shanghai"; 
       WantedYPr=1272; 
       WantedXPr=6664; 
       break; 
      case 6: 
       Place="Moskau"; 
       WantedYPr=732; 
       WantedXPr=4800; 
       break; 
      case 7: 
       Place="kahir"; 
       WantedYPr=4690; 
       WantedXPr=1310; 
       break; 
      case 8: 
       Place="Delhi"; 
       WantedYPr=1323; 
       WantedXPr=5707; 
       break; 
      case 9: 
       Place="rio de genero"; 
       WantedYPr=2478; 
       WantedXPr=3050; 
       break; 
      case 10: 
       Place="Tokyo"; 
       WantedYPr=1180; 
       WantedXPr=7102; 
       break; 
     } 

     setTimeout(function(){ 
      if (ImageClicked==false){ 
       $('#HeaderAfterWrite').html(", all the people were killed"); 
       $('#HeaderWrite').html("No one helped ");} 
      else if(XYScore>69) 
       $('#HeaderWrite').html("Youv'e succesful recover the city "); 
      else if(XYScore>39) 
       $('#HeaderWrite').html("The Parvars are not all of "); 
      else {$('#HeaderAfterWrite').html("is full destroyed now!"); 
       $('#HeaderWrite').html(" ");} 
     }, 8000); 
     $('#Place').html(Place); 
    } 
}); 

Trả lời

20

Bạn có thể sử dụng một setInterval cho mục đích này

Reference

time=setInterval(function(){ 
//your code 
},9000); 

bạn có thể xóa bằng cách

clearInterval(time); 
+4

Khác với đặt tên từ định danh khoảng thời gian 'time', câu trả lời hay. ... tốt, và w3schools là một tài liệu tham khảo khá nghèo nàn. nhưng 1 dù sao đi nữa. – CaffGeek

-1

vâng đó là một cách để sửa chữa nó.

tạo chức năng hết thời gian chờ.

function setTimeoutAgain() 
{ 
    var t = setTimeout(function() 
    { 
     setTimeoutAgain(); 
    },8000); 
} 
+0

làm thế nào để tôi dán nó vào mã của tôi (chỉ là một người mới bắt đầu trong javascript)? –

3

Điều này thanh lịch hơn.

(function loop() { 
    setTimeout(function() { 
    // execute script 
    loop() 
    }, 9000); 
}()); 
Các vấn đề liên quan