Вам нужно будет использовать:
google.script.run.withSuccessHandler
, который является JavaScript, асинхронным, Клиентский API , который позволяет вам взаимодействовать с функциями на стороне сервера (ссылкиможно найти здесь ). setInterval
функция для вызова вышеупомянутого клиентского API на частоте, которую вы считаете подходящей - 3000/3500 миллисекунд - вот что яДо сих пор мы использовали сервисные квоты , конкретно не говорим о его ограничениях
На стороне сервера
Это в значительной степени код, который пишется в code.gs части скрипта;где находятся все ваши функции, которые взаимодействуют, возможно, с вашими электронными таблицами или действуют как веб-крючок
на стороне клиента
Это код, который запускается из вашего файла *. html изагрузка в вашем веб-браузере. Здесь вы можете использовать «асинхронный» API
Пример
В моей фиктивной настройке , я -
- Извлечениеслучайные цитаты из thesimpsonsquoteapi
- Отображение таймера, который меняется каждую секунду
Code.gs (код на стороне сервера)
function doGet(e) {
return HtmlService.createHtmlOutputFromFile('Index').setTitle('Realtime Data');
}
function randomQuotes() {
var baseURL = 'https://thesimpsonsquoteapi.glitch.me/quotes';
var quotesData = UrlFetchApp.fetch(baseURL, { muteHttpExceptions: true });
var quote;
var imageURL;
if (quotesData.getResponseCode() == 200 || quotesData.getResponseCode() == 201) {
var response = quotesData.getContentText();
var data = JSON.parse(response)[0];
quote = data["quote"];
imageURL = data["image"];
} else {
quote = 'Random Quote Generator is broken!';
imageURL = 'https://cdn.shopify.com/s/files/1/1061/1924/products/Sad_Face_Emoji_large.png?v=1480481055';
}
var randomQuote = {
"quote": quote,
"imageTag": '<img class="responsive-img" src="' + imageURL + '">'
}
return randomQuote;
}
function getTime() {
var now = new Date();
return now;
}
Index.html (код на стороне клиента)
Я только выделяю соответствующие аспекты кода
Следующие выборочные кавычки выбираются каждые 10 секунд (10000 мс)
<script>
function onSuccess1(quotedata) {
var quoteactual = document.getElementById('quote');
quoteactual.innerhtml = quotedata.quote;
var quoteimg = document.getElementById('quoteImage');
quoteimg.innerhtml = quotedata.imagetag;
}
setInterval(function() {
console.log("getting quote...")
google.script.run.withSuccessHandler(onsuccess1).randomQuotes();
}, 10000);
</script>
Эта выборка производится раз в 1 секунду (1000 мс)
<script>
function onSuccess2(now) {
var div = document.getElementById('time');
var today = new Date();
var time = today.getHours() + " : " + today.getMinutes() + " : " + today.getSeconds();
div.innerhtml = time;
}
setInterval(function() {
console.log("getting time...")
google.script.run.withSuccessHandler(onsuccess2).getTime();
}, 1000);
</script>
Вы можете получить доступ ко всему сценарию в моем репозитории github или сделатькопия из оригинального сценария .
Вывод
Предполагается, что изображение здесь меняется каждые 10 секунд и таймер, каждые 1 с
Журнал консоли браузера можно посмотреть здесь -
Я написал эту статью пару недельназад, что outlИнес большинство аспектов того, что все до сих пор отвечали / комментировали, но я надеюсь, что мое объяснение здесь также поможет.