我試圖從電子表格上的Google應用程序腳本表單向專用緩存保存一些用戶輸入。從服務器處理程序使用緩存
下面是測試腳本:
var cache = CacheService.getPrivateCache();
function onLoad() {
var sheet = SpreadsheetApp.getActiveSpreadsheet(),
entries = [{
name : "Show form",
functionName : "showForm"
}];
sheet.addMenu("Test Menu", entries);
}
function showForm() {
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet(),
app = UiApp.createApplication(),
setButton = app.createButton("Set"),
setHandler = app.createServerClickHandler('setTest');
setButton.addClickHandler(setHandler);
app.add(setButton);
spreadsheet.show(app);
}
function setTest(event) {
cache.put("test", "test", 7200);
Browser.msgBox("Test was set: " + cache.get("test") + ". Use the getTest cell formula to test the cache.");
}
function getTest() {
var result = cache.get("test");
return result;
}
當我點擊菜單鍵,會出現一個表格,並設置在服務器處理器的高速緩存值。然後我嘗試在單元格中使用= getTest()從緩存中獲取值。我期望緩存返回值「測試」,但它似乎返回null。
我開始在這裏這個問題: http://code.google.com/p/google-apps-script-issues/issues/detail?id=2039
而且我還發現了另一個類似的一個: http://code.google.com/p/google-apps-script-issues/issues/detail?id=1804
試圖保存表單上的一些用戶輸入到緩存中,並能夠從另一個訪問功能在晚些時候。
有什麼建議嗎?
消息框顯示正確的值嗎? – Srik
如果您正在討論彈出的msgBox確認緩存值確實是從setTest函數設置的,那麼確實是這樣。 – adrianb