每 3 秒自动刷新表体

时间:2021-01-01 09:55:35

标签: javascript google-apps-script

我使用应用脚本创建了一个网站。

我需要表格每 3 秒自动刷新一次。 (只是表格而不是整个页面)

我该怎么做?

这是我的代码:

<script>

document.addEventListener("DOMContentLoaded",function(){

  google.script.run.withSuccessHandler(generateTable).getOnline();
  google.script.run.withSuccessHandler(getOnline).generateTable();

});

function generateTable(dataArray){

  var tbody = document.getElementById("tablebody");
  
  dataArray.forEach(function(r){
  
  var row = document.createElement("tr");
  var col1 = document.createElement("td");
  col1.textContent = r[0];
  var col2 = document.createElement("td");
  col2.textContent = r[1];
  var col3 = document.createElement("td");
  col3.textContent = r[2];
  row.appendChild(col1);
  row.appendChild(col2);
  row.appendChild(col3);
  tbody.appendChild(row);
  
  
  });
}

</script>
table {
  font-family: arial, sans-serif;
  border-collapse: collapse;
  width: 100%;
}

td, th {
  border: 1px solid #dddddd;
  text-align: left;
  padding: 8px;
}

th {
  padding-top: 12px;
  padding-bottom: 12px;
  text-align: left;
  background-color: teal;
  color: white;
}

tr:nth-child(even) {
  background-color: #dddddd;
}

tr:hover {background-color: #f5f5f5;}
<h1>? Current Users</h1>
    <table>
      <tr>
        <th>Name</th>
        <th>Last Name</th>
        <th>EID</th>
      </tr>
     <tbody id="tablebody">
    </table> 

表格正文中的值来自我的电子表格。但显然,每次我在电子表格中输入一些值时,我仍然需要刷新整个页面才能看到表格中的值。我该怎么做?太感谢了!新年快乐。

2 个答案:

答案 0 :(得分:1)

document.addEventListener("DOMContentLoaded",function(){
  setInterval(() => {
    google.script.run.withSuccessHandler(generateTable).getOnline();
    google.script.run.withSuccessHandler(getOnline).generateTable();
  }, 3000); // run the function every 3 seconds
  
});

您可以考虑使用 setInterval 方法每 3 秒刷新一次表的数据源。文档:https://developer.mozilla.org/en-US/docs/Web/API/WindowOrWorkerGlobalScope/setInterval

答案 1 :(得分:0)

我正在复制同一个脚本并进行一次更改。

document.addEventListener("DOMContentLoaded",function(){
  setInterval(() => {
document.getElementById("tablebody").innerHTML = "";
    google.script.run.withSuccessHandler(generateTable).getOnline();
    google.script.run.withSuccessHandler(getOnline).generateTable();
  }, 3000); // run the function every 3 seconds
  
});

你可以这样做。

相关问题