我在 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/