【问题标题】:Refresh multiple div's刷新多个div
【发布时间】:2015-04-09 09:05:41
【问题描述】:

我正在使用以下代码在 2 个不同的 div 中每 2 秒刷新一次数据

<script type="text/javascript">


    function refreshTable(divId, typeId, serverDesc){

        $.get('getServerData.php?vTypeId=' + $(typeId).val() + '&vServerDesc=' + $(serverDesc).val(), function(data){
           $(divId).html(data);
           window.setTimeout(refreshTable, 2000)})
    }    


    $(document).ready(function(){
      refreshTable("#Servers1", "#hdnTypeId1", "#hdnServerDesc1");
      refreshTable("#Servers2", "#hdnTypeId2", "#hdnServerDesc2");
    });    

</script> 

我得到了不同 div 的正确数据,但刷新不起作用。 在 hdnTypeId 字段和 hdnServerDesc 字段中,传递了正确的数据,但刷新不起作用。

【问题讨论】:

  • 您需要使用所需的参数(divId、typeId、serverDesc)调用 refreshTable
  • 当您在setTimeout 中调用它时,您没有将任何参数传递给refreshTable
  • 如果你想每隔 N 秒做一次,为什么不使用setInterval
  • @Barmar setTimeout 方法在这里更好,即仅在通过 get 获取一些数据后调用方法。如果响应有一些延迟,SetInterval 可能会与其他 get 请求重叠。

标签: javascript html refresh


【解决方案1】:

您正在对 refreshTable 进行不带参数的回调,请更改

window.setTimeout(refreshTable, 2000)

window.setTimeout(function(){refreshTable(divId,typeId,serverDesc);}, 2000)

【讨论】:

  • 好的,现在正在刷新,但是刷新后 typeId 和 serverDesc 没有值。所以我第一次看到这些值,但随着超时,我得到未定义的值。我对这些东西很陌生,如果这是一个愚蠢的问题,我很抱歉。
  • 设置 divId 的 html 时是否会覆盖 typeId 和 serverDesc 元素的值?
  • 不,这是在 div 中设置的两个隐藏字段,它们是动态构建的:
    " name="hdnServerDesc" value="" />
  • 当我查看源代码时,这些字段仍然填充了正确的值:
  • 是原来的html还是你get并修改html后的html?
【解决方案2】:

您可以像这样将函数作为第一个参数传递给 window.setTimeout:

<script type="text/javascript">
    function refreshTable(divId, typeId, serverDesc){

        $.get('getServerData.php?vTypeId=' + $(typeId).val() + '&vServerDesc=' + $(serverDesc).val(), function(data){
           $(divId).html(data);

           window.setTimeout(function() {
               refreshTable(divId, typeId, serverDesc);
           }, 2000)})
    }    

    $(document).ready(function(){
      refreshTable("#Servers1", "#hdnTypeId1", "#hdnServerDesc1");
      refreshTable("#Servers2", "#hdnTypeId2", "#hdnServerDesc2");
    });    

</script> 

【讨论】:

    猜你喜欢
    • 2016-06-22
    • 1970-01-01
    • 2021-09-11
    • 2014-09-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多