2012-06-21 3 views
12

Каково точное использование функции Utilities.sleep()? Должны ли мы использовать его между вызовами функций или вызовами API?Как использовать функцию Utilities.sleep()

Я использую Utilities.sleep(1000) промежуточные вызовы функций, правильно? Будет ли это замедлять время выполнения?

ответ

24

Utilities.sleep (миллисекунды) создает «паузу» в выполнении программы, то есть ничего не делает в течение заданного миллисекунды. Это, безусловно, замедляет весь процесс, и вы не должны использовать его между вызовами функций. Есть несколько исключений, хотя, по крайней мере, тот, который я знаю: в SpreadsheetApp, когда вы хотите удалить несколько листов, вы можете добавить несколько сотен миллисекунд между каждым удалением, чтобы разрешить выполнение обычного скрипта (но это обходное решение для известной проблемы с этим конкретным методом). Я должен был использовать его также при создании большого количества листов в электронной таблице, чтобы избежать необходимости обновления браузера после его выполнения.

Вот пример:

function delsheets(){ 
    var ss = SpreadsheetApp.getActiveSpreadsheet(); 
    var numbofsheet=ss.getNumSheets();// check how many sheets in the spreadsheet 
    for (pa=numbofsheet-1;pa>0;--pa){ 
    ss.setActiveSheet(ss.getSheets()[pa]); 
    var newSheet = ss.deleteActiveSheet(); // delete sheets begining with the last one 
    Utilities.sleep(200);// pause in the loop for 200 milliseconds 
    } 
    ss.setActiveSheet(ss.getSheets()[0]);// return to first sheet as active sheet (useful in 'list' function) 
} 
Смежные вопросы