【问题标题】:displaying ajax response in textarea as soon as page is loaded页面加载后立即在 textarea 中显示 ajax 响应
【发布时间】:2010-06-24 06:21:34
【问题描述】:

我有一个连续的 ajax 请求,要求提供一些数据 即显示在textarea中。 现在我的问题是,如何在页面加载后立即显示数据。

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 

塔齐姆

【问题讨论】:

    标签: jquery ajax django


    【解决方案1】:

    只需在您的 .ready() 处理程序中调用 displayfile();

    如果您迫不及待地失去一秒钟,请像这样修改您的代码:

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

    或者.. 只需将displayfile(); 放在您的'.readyhandler to execute that ajax request as soon as possible (after theDOM' 中的任何位置即可);

    如果您不需要准备好DOM,您可以通过创建一个自执行匿名函数来进一步执行该函数。

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

    您可以使用 displayfile() 函数中的代码填充它,它将执行 尽快

    【讨论】:

    • 请详细解释一下
    • 我也不应该使用这个提交按钮。页面加载后会立即发送连续的 ajax 请求,并且响应应显示在文本区域中。该页面应仅包含 textarea 。每隔一秒发送一次请求并加载数据,一旦没有更多数据,间隔就会被清除。我尝试放置提交按钮只是为了理解但理想情况下,页面应该只包含显示数据的文本区域。提前感谢任何建议示例代码
    【解决方案2】:

    塔齐姆,

    改变:

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

    到:

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

    吉姆

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-02-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-21
      • 2012-03-01
      相关资源
      最近更新 更多