отображение ответа ajax в textarea, как только страница загружена - PullRequest
1 голос
/ 24 июня 2010

У меня непрерывный запрос 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

Ответы [ 2 ]

0 голосов
/ 24 июня 2010

тазим,

изменить:

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

на:

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

Джим

0 голосов
/ 24 июня 2010

Просто позвоните 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(), и он будет выполнен как можно скорее .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...