javascript - 生成的 HTML 与 JSON、Google Apps 脚本

标签 javascript jquery json ajax google-apps-script

我在 Google Apps 脚本中有一个网络应用程序,我可以在其中从 Google Sheet 获取餐馆数据列表(名称、地址、电话等),并通过 AJAX 将它们显示到我的网站上。目前,结果数据是从 Google Apps 脚本创建的 HTML 生成的,我在想是否有任何方法可以更快地加载列表。然后我想到了 JSON,但我研究了一下,发现加载时间差别不大。以下是为工作表中的每个行数据呈现的 HTML 代码,

  for (var i=0; i<rng.length; i++)
  {
    if (rng[i][0] != "") {
      html += '<br><div class="row">
                  <div class="col s4">
                      <img class="circle responsive-img" src="img/logos/'+rng[i][0]+'.png" />
                  </div>
                  <div class="col s8">
                      <h5>'+rng[i][1]+'</h5>
                      <p><b>'+rng[i][2]+'</b></p>
                      <p>'+rng[i][3]+'</p>
                      <a class="waves-effect waves-light btn btn-sm red lighten-2" href="menu.html?id='+rng[i][0]+'">See Menu</a>
                  </div>
              </div><hr><br>';
    }
  }

因此,对于每一行数据,它都会创建该部分 HTML 代码,并在我的网站中返回整个 HTML,我通过 jQuery AJAX 获取它。现在,我的问题是,上述方法更好还是应该使用 JSON 来仅获取原始数据并通过客户端渲染它?

最佳答案

发送准备好的 HTML 应该会使网站渲染速度更快,特别是在客户端具有低功耗 CPU 的情况下。但是,除了 HTML 与 JSON 之外,延迟很可能是由于 Google Apps 脚本执行缓慢造成的。所有的字符串连接不应该在每次调用doGet时发生,这是浪费时间。每次编辑电子表格时(使用 trigger )处理一次数据,并将输出(无论是 HTML 或 JSON)存储在电子表格的单独工作表上或 Script Cache 中。 。这样 doGet 只需要检索一个字符串并立即提供它。

关于javascript - 生成的 HTML 与 JSON、Google Apps 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47348270/

相关文章:

javascript - 无法正确更新 React 状态变量

javascript - 日语检测全 Angular 字符

javascript - 使用php将结果html文件(包含js代码)导入到mysql

javascript - 更改 :before css selector using JQuery 的宽度属性

javascript - Summernote 所见即所得编辑器保存在代码 View 中不工作 js/jquery

asp.net - 具有动态数据类型的 jQuery AJAX POST 对象到 ASP.Net WebMethod

javascript - 在单选按钮上执行 onChange 函数

jquery - 对点击事件使用 promise 成功

java - 我们可以序列化并发送一个包含主对象内的对象列表的表单 - Ajax、Spring MVC

javascript - 遍历 jquery json