2010-06-24 62 views
1

我有一个连续的ajax请求,要求输入一些要在textarea中显示的数据 。 现在我的问题是,如何在页面加载后立即显示数据。加载页面后在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

就叫你.ready()处理程序中displayfile();

如果你不要等到失去了一秒,修改您的代码是这样的:

$("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 2010-06-24 06:41:10

+0

@tazim:看到更新 – jAndy 2010-06-24 06:58:50

+0

我不是想用这个提交按钮也。 加载页面后会立即发送连续的ajax请求,并且 响应应显示在textarea中。 页面应该只包含textarea。每隔一秒发送一次请求并加载数据,只要没有剩下数据,间隔就会被清除。我试着把提交按钮只是为了理解,但理想情况下,页面应该只包含textarea,并显示数据。预先感谢任何建议示例代码 – tazim 2010-06-24 07:25:21

0

tazim,

变化:

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

到:

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

吉姆