Создание большого количества записей с помощью клиентского скрипта не рекомендуется, особенно если вы потеряете соединение или приложение по ошибке закроется.На мой взгляд, лучший способ справиться с этим - использовать серверный скрипт для двух вещей: во-первых, это более надежно, а во-вторых, быстрее.Как и в примере из официальной документации, для создания записи вам нужно сделать что-то вроде этого:
// Assume a model called "Fruits" with a string field called "Name".
var newRecord = app.models.Fruits.newRecord();
newRecord.Name = "Kiwi"; // properties/fields can be read and written.
app.saveRecords([newRecord]); // save changes to database.
Приведенный выше пример является наглядным примером того, как создать только одну запись.Чтобы создать несколько записей одновременно, вы можете использовать оператор for
, например, такой:
function createRecordsInBulk(){
var newRecords = [];
for(var i=0; i<19; i++){
var newRecord = app.models.Fruits.newRecord();
newRecord.Name = "Kiwi " + i;
newRecords.push(newRecord);
}
app.saveRecords(newRecords);
}
. В приведенном выше примере вы запускаете newRecords , пустой массив, который будет отвечать задержа все новые записи, чтобы создать сразу.Затем, используя оператор for
, вы генерируете 19 новых записей и помещаете их в newRecords .Наконец, после завершения цикла вы сохраняете все записи одновременно, используя app.saveRecords и передавая массив newRecords в качестве аргумента.
Теперь всеэто происходит на стороне сервера.Очевидно, вам нужен способ вызвать это со стороны клиента.Для этого вам нужно использовать метод google.script.run .Поэтому со стороны клиента вам нужно сделать следующее:
google.script.run.withSuccessHandler(function(result) {
app.datasources.Fruits.load();
}).createRecordsInBulk();
Вся эта информация четко документирована на официальном сайте документации разработчика приложений .Я настоятельно рекомендую вам всегда сначала проверять это, так как считаю, что вы можете получить более быстрое разрешение, прочитав документацию.