2010-06-24 4 views
1

У меня есть постоянный запрос ajax с запросом на некоторые данные , которые должны отображаться в textarea. Теперь моя проблема, как мне отображать данные, как только страница загружается., отображающий ответ ajax в текстовом поле, как только страница загружается

My template code is as follows: 




    <html> 
<head> 
<script type="text/javascript" src="/jquerycall/"></script> 
<script type="text/javascript"> 
    $(document).ready(function() 
    { 
       var setid = 0; 
       var s = new String(); 
       var my_array = new Array(); 
       var no_of_lines = 0; 
       var array_copy = new Array(); 
       var fname ="{{fname}}" 
       var pid = "{{pid}}" 
       function displayfile() 
       { 

       var text = $("#textid").val(); 
       if(text == "") 
       { 
         no_of_lines = 0; 
       } 
       else 
       { 

         array_copy = text.split("\n"); 
         no_of_lines = array_copy.length; 


       } 
       /*$("#tid").val(no_of_lines)*/ 
       $.ajax({ 
           type:"POST", 
           url:"/displayoutput/", 
           datatype:"json", 
           data:{text:no_of_lines,filename:fname,pid:pid}, 
           success:function(data) 
             { 

               s = data.filedata; 
               if(s == "") 
               { 
                clearInterval(setid); 

               } 
               my_array = s.split("\n"); 
               displaydata(my_array); 

             } 


         }); 


       } 

        function displaydata(my_array) 
       { 

        var i = 0; 
        var length = my_array.length; 
        for(i=0;i<my_array.length;i++) 
        { 
         var line = my_array[i] + "\n"; 
         line = line.replace(/</g,"&lt;"); 
         $("#textid").append(line); 
         $("#tid").val(line) 

        } 


      } 


       $("form").submit(function(event) 
       { 

        setid = setInterval(displayfile,1000); 
        event.preventDefault(); 

       }); 

       $("#stop").click(function() 
       { 
        clearInterval(setid); 
       }); 
    }); 

</script> 
</head> 
<body> 
<form method="post"> 
<input type="submit" value="Click Me"/><br><br> 
<button type="button" id="stop">Stop</button><br><br> 
<textarea id="textid" disabled="true" readonly="true" rows=30 cols=100></textarea><br><br> 


</form> 
</body> 
</html> 



Here, the data is loaded when I click the "Click Me" 
But I want the data to be loaded as soon as page is loaded 
Any suggestions will be valuable 
Thanks in advance 

tazim

ответ

0

Просто позвоните displayfile(); в пределах вашего .ready() обработчика.

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

$("form").submit(function(event) 
{ 
     setid = setInterval(displayfile,1000); 
     event.preventDefault(); 
}).submit(); 

Или .. просто положить displayfile(); где-нибудь в вашем'.ready handler to execute that ajax request as soon as possible (after the DOM` готов);

Если вам не нужен DOM, чтобы быть готовым, вы можете выполнить эту функцию еще дальше, создав самопроизвольную анонимную функцию.

(function(){ 
    // code to execute 
})(); 

Вы можете заполнить, что с кодом из вашей displayfile() функции, и она будет выполнять можно скорее.

+0

пожалуйста объяснить это более конкретно – tazim

+0

@tazim: см обновление – jAndy

+0

Я не думаю, чтобы использовать эта кнопка отправки также. Постоянный запрос ajax отправляется сразу после загрузки страницы и ответ должен отображаться в текстовом поле. Страница должна содержать только текстовое поле. где запросы отправляются каждую секунду и данные загружаются, интервал очищается, как только больше данных не остается. Я попытался поставить кнопку отправки только для понимания. Но в идеале страница должна содержать только текстовую область с отображением данных. Заранее благодарим за код предложения – tazim

0

tazim,

изменение:

  $("form").submit(function(event) 
      { 
       setid = setInterval(displayfile,1000); 
       event.preventDefault(); 
      }); 

к:

  $(document).ready(function() { 
       displayfile(); 
       setid = setInterval(displayfile,1000); 
      }); 

джим

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