gpt4 book ai didi

caching - GSCRIPT - 如何缓存 HTML 页面内容?

转载 作者:行者123 更新时间:2023-12-05 07:45:17 25 4
gpt4 key购买 nike

我有点卡在这里。

我有一个正在加载的 HTML 模板,在这个页面中有很多 JavaScript 正在运行。

我试图通过使用 Google 表格的 onOpen() 缓存模板来加速操作。我不知道如何缓存我的 HTML 页面 CalForm.html(来 self 的内部 Google 表格脚本)。

这是我目前拥有的:

创建缓存

function CacheCreate() {

CacheService.getScriptCache().put('CalCache', 'CalForm');
Browser.msgBox("done");
}

获取缓存

var evalSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Evaluation');
var row = evalSheet.getActiveCell().getRow();

var CalCache2 = CacheService.getScriptCache().get('CalCache');

Browser.msgBox(CacheService.getScriptCache().get('CalCache'))

initialize(row);

//var cache = CacheService.getScriptCache();
//var cache2 = cache.get('rss-feed-contents');

//Browser.msgBox(cache.get('rss-feed-contents'));

var html = HtmlService
.createTemplateFromFile(CalCache2)
.evaluate()
.setWidth(1200)
.setHeight(560)
.setSandboxMode(HtmlService.SandboxMode.NATIVE);
SpreadsheetApp.getUi().showModalDialog(html, 'Calculatrice');

感谢您的帮助!

最佳答案

首先,您需要从“内部 Google 表格脚本”中获取 HTML,如果您的脚本中有一个名为“template.html”的文件,则以下代码将获取 HTML(字符串格式)。

var template = HtmlService.createHtmlOutputFromFile('template').getContent();

我运行检查以查看数据是否已在缓存中...

function getObjectsFromCache(key, objects, flush) 
{
Logger.log("Running: getObjectsFromCache(" + key + ", objects)");
var cache = CacheService.getScriptCache();
var cached = cache.get(key);
flush = false; // 1st run 45.33, 2nd run 46.475
//flush = true;// 65.818 seconds
if (cached != null && flush != true)
{
Logger.log("\tEXISTING DATA -> ");
cached = cache.get(key);
}
else
{
Logger.log("\tNEW DATA -> ");
//Logger.log("\tJSON.stringify(objects): " + JSON.stringify(objects) + ", length: " + objects.length);
//If you're working with spreadsheet objects, or array data, you'll want to put the data in the cache as a string, and then reformat the data to it's original format, when it is returned.
//cache.put(key, JSON.stringify(objects), 1500); // cache for 25 minutes
//In your case, the HTML does not need to be stringified.
cache.put(key, objects, 1500); // cache for 25 minutes
cached = objects;
}
return cached;
}

我注释掉了 JSON.Stringify(objects),因为在我的原始代码中,我使用了另一个名为 formatCachedData(cache, key) 的函数来返回不同类型的数据 - 一个多维数组(电子表格数据),或者来自 AdminDirectory.Users.list({...}) 的 Google 用户数据。

关于caching - GSCRIPT - 如何缓存 HTML 页面内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41811686/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com