【问题标题】:Refreshing php script inside a div刷新div内的php脚本
【发布时间】:2015-04-11 13:31:42
【问题描述】:

我目前正在使用以下脚本以 60 秒的时间间隔刷新 div 中的 messages.php。

<script>
jQuery().ready(function(){
setInterval("getResult()",60000);
});
function getResult(){   
jQuery.post("messages.php",function( data ) {
    jQuery("#msgs").html(data);
});
}
</script>
<div id="msgs">
</div>

我目前的问题是60秒后第一次显示php文件的回显。然后它每 60 秒刷新一次。 我需要在启动页面开始时加载代码。

【问题讨论】:

  • 那么,您已经实现了什么?你卡在哪里了?
  • jQuery(getResult);会在文档准备好后调用它。仅供参考,这是首选语法:setInterval(getResult, 60000); 避免字符串评估
  • 只需添加 getResult();在你的 setInterval 之前,这样它将执行一次,然后每 60 秒执行一次

标签: javascript php jquery html


【解决方案1】:

在 DOM Ready 上也调用 getResult()

<script>
jQuery().ready(function(){
getResult();
setInterval("getResult()",60000);
});
function getResult(){   
jQuery.post("messages.php",function( data ) {
    jQuery("#msgs").html(data);
});
}
</script>
<div id="msgs">
</div>

【讨论】:

  • getResult() 后缺少分号。
【解决方案2】:

我每次都会使用 setTimeout:

<script>
jQuery().ready(function() {
    function getResult() {
       $('#msgs').load('messages.php', {});
       setTimeout(getResult, 60000);
    }

    getResult();
}
</script>
<div id="msgs"></div>

在回调中重新触发的替代方案(A. Wolff 的建议,以防 messages.php 需要很长时间才能完成):

<script>
jQuery().ready(function() {
    function getResult() {
       $('#msgs').load('messages.php', {}, function() {
           setTimeout(getResult, 60000);
       });
    }

    getResult();
}
</script>
<div id="msgs"></div>

【讨论】:

  • 很好地调用将数据传递给加载方法并使用超时,即使我会使用完整的加载方法回调,以防请求需要超过 60 秒才能完成
  • 好主意。我会根据您的建议添加替代方案。
【解决方案3】:
<script>
jQuery().ready(function(){
   getResult();
   setInterval("getResult()",60000);
});
function getResult(){   
jQuery.post("messages.php",function( data ) {
    jQuery("#msgs").html(data);
});
}
</script>
<div id="msgs">
</div>

使用此代码..

【讨论】:

    【解决方案4】:

    为了获取页面加载数据,请在 DOM 就绪事件上调用 getResult(),如下所示:-

    <script>
    jQuery().ready(function(){
      getResult();  //it will get data as soon as page is loaded.
      setInterval("getResult()",60000); // it will refresh #msgs after every 1 min.
    });
    function getResult(){   
      jQuery.post("messages.php",function( data ) {
        jQuery("#msgs").html(data);
      });
    }
    </script>
    <div id="msgs">
    </div>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-29
      • 1970-01-01
      • 1970-01-01
      • 2012-11-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多