У меня есть надстройка боковой панели на листе Google. Время отображения довольно медленное (около 7 секунд с момента запуска отображения боковой панели до refre sh.
. Я попробовал использовать очень простую функцию сценария на стороне сервера, приведенную ниже (просто вернуть фиктивное значение), и все равно требуется столько же времени для отображения (так что проблема не в сложности функции на стороне сервера).
Можно ли что-нибудь сделать, чтобы ускорить ее?
code.gs
function onOpen(){
var ss = SpreadsheetApp.getActiveSpreadsheet();
var menuEntries = [{name: "Show sidebar", functionName: "showSidebar"}];
ss.addMenu("TestMenu", menuEntries);
}
function getDataDummy() {
return {data: "foo"};
}
function showSidebar() {
var ui = HtmlService.createTemplateFromFile('TestSidebar')
.evaluate()
.setSandboxMode(HtmlService.SandboxMode.IFRAME)
.setTitle("Title");
SpreadsheetApp.getUi().showSidebar(ui);
}
TestSidebar. html
<div class="sidebar branding-below">
<p>
Test
</p>
<div class="block div-table" id="sidebar-record-block">
<div id="field-data" class="div-table-row"><div class="div-table-td"><input type=text id="data" /></div></div>
</div>
<div class="block" id="sidebar-button-bar">
</div>
<div id="sidebar-status"></div>
</div>
<?!= HtmlService.createHtmlOutputFromFile('TestSidebar.javascript').getContent(); ?>
TestSidebar. javascript
<script src="//ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script>
<script>
$(function() {
google.script.run.withSuccessHandler(showData).getDataDummy();
});
function showData(record) {
if (record && record["data"]) {
$("#data").val(record["data"]);
}
}
</script>
Этот код ничего не делает с самим листом, но от щелчка по меню до отображаемых данных - 7 секунд.