Добрый день,
Я создал инструмент управления тарифами, с помощью которого вы можете, например, выпускать предложения для клиентов. Если мои коллеги (каждый со своей версией листа) нажимают показанную ниже функцию SaveQuote, иногда это занимает некоторое время, иногда это происходит в течение 1 секунды.
Я предполагаю, что это связано с какими-то кэшированными значениями?
Теперь я прочитал, что можно использовать службу кэширования или даже службы свойств для получения временных / постоянных значений кэша. Я читаю документацию для обоих сервисов, но не могу понять, где разместить сервисы, чтобы они работали. Это в начале сценария, в конце, внутри или отдельно?
Ниже приведен один из нескольких моих сценариев. Какие значения будут хорошим способом кэширования? Как они будут кэшироваться? Я не понимаю схему ключ / пара за функцией кеша.
Мои коллеги используют мой инструмент около 8 часов в день. Так что я думаю, что служба недвижимости будет более подходящей?
Может ли кто-нибудь помочь мне здесь? Я с удовольствием предоставлю больше информации, если это необходимо.
Любые комментарии к моему коду также приветствуются, если, например, его можно написать более эффективно.
Заранее большое спасибо. Ваша помощь очень ценится.
function SaveQuote() {
var ratenprogramm = SpreadsheetApp.getActiveSpreadsheet();
var ratenprogrammuser = SpreadsheetApp.openByUrl(
'https://docs.google.com/spreadsheets/d/xxxxxxxxxxxxxxxxxxxxxx/edit');
var quotations = ratenprogrammuser.getSheetByName("Quotations");
var quotation = ratenprogramm.getSheetByName("Quotations");
var diverses = ratenprogramm.getSheetByName("Diverses");
var ergebnis = ratenprogramm.getSheetByName("Ergebnis");
var prefix = diverses.getRange('X23').getValue();
var modusarray = ["EX-LCL-","EX-FCL-","IM-LCL-","IM-FCL-"];
var rangearray = ["A2","B2","D2","E2"];
var rangearray2 = ["H2","I2","K2","L2"];
for(i=0;modusarray.length-1;i++)
{
if (prefix == modusarray[i])
{
var newquote = quotations.getRange(rangearray[i]).getValue()+1;
quotations.getRange(rangearray2[i]).setValue(newquote);
break;
}
}
var quotationnumber = prefix+newquote;
diverses.getRange('Y22').setValue(quotationnumber);
var stuff1 = ratenprogramm.getRange('C3');
var stuff2 = ergebnis.getRange('E6');
var stuff3 = diverses.getRange("A23");
var stuff4 = diverses.getRange("A22");
var stuffarray = [stuff1, stuff2, stuff3, stuff4];
for(i=0;i<=3;i++)
{
stuffarray[i].setValue(quotationnumber);
}
diverses.getRange("A21").setValue(0);
var DataRange = quotation.getRange('A8:R8');
var DataCopied = DataRange.getDisplayValues();
var startRow = quotations.getRange('G2').getValue();
// eigenequotes.getRange(startRow2, startColumn, numRows, numColumns).setValues(DataCopied);
for(i = 0;i<19;i++)
{
var range = quotations.getRange(startRow, i+1);
range.setValue(DataCopied[0][i]);
}
SpreadsheetApp.flush();
}