Рекомендация. Лучше ли получать данные через doPost (e) или google.script.run.someFunction (data)? - PullRequest
0 голосов
/ 15 февраля 2019

Я делаю приложение, которое может передавать форму с веб-страницы в электронную таблицу Google.Я нашел два основных способа сделать это:

1) Я отправляю форму на веб-странице, а затем обрабатываю событие с помощью doPost(e) -> JSON.stringify(e).(Это в "code.gs".)

или

2) Я делаю функцию т.е. "writeToCellA1 ()" и вызываю ее следующим образом google.script.run.writeToCellA1(someData).(Это в "index.html")

Вопрос в следующем: есть ли какой-то фон из этих двух возможных способов записи данных в таблицу Google, которые предполагают, что один из них лучше?Более безопасная, более надежная, более перспективная разработка будущих функций и т. Д. *

1 Ответ

0 голосов
/ 15 февраля 2019

Если вы используете doPost, вы должны определить, какую именно функцию вызывать, проверяя полезную нагрузку, поскольку весь ввод от клиента направляется в эту единственную точку входа.Все параметры функции должны быть объектно-ориентированными (т.е. именованными).Если вы не используете асинхронные методы для соединения, вы заблокируете свой клиентский код.Кроме того, любой полученный вами ответ будет либо ContentService, либо HtmlService.

. Если вы используете шаблон google.script.run, ваши вызовы могут быть направлены на определенную функцию сервера, вы можете легко указать параметры функции втрадиционными способами (т. е. позиционными и объектно-ориентированными), ваши вызовы гарантированно будут асинхронными, и вы можете возвращать большинство сериализуемых типов данных напрямую.

Дополнительно имеется аргумент доступа - doPost доступен для любогодостаточно авторизованный клиент, возможно даже анонимный, в соответствии с настройками вашего опубликованного веб-приложения.Это может быть внешний код, который вы или другие пишете, например, скрипт php.Вызовы, сделанные через google.script.run, доступны только со страницы, обслуживаемой HtmlService (вы можете использовать API скриптов приложений для нацеливания отдельных функций из внешнего кода).Обратите внимание, что вы не обязаны публиковать как веб-приложение, чтобы использовать google.script.run - то есть вы можете использовать их и в боковых панелях, и в модальных диалоговых окнах.

Существует также способ обработки ошибок / ответов.Если вы хотите добавить обратные вызовы успеха и неудачи для этих вызовов к doPost, вам нужно будет выполнить больше работы, чем если бы вы хотели сделать то же самое для вызовов с google.script.run - последний поддерживает простое добавление их двумя способами, withSuccessHandler и withFailureHandler.

В любом случае, вам следует ознакомиться с официальной документацией по следующим темам:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...