Google Apps Script là một công cụ mạnh mẽ cho việc phát triển ứng dụng và kịch bản trực tuyến. Đối với những người làm việc chủ yếu với Google Workspace, việc tối ưu hóa function trong Apps Script không chỉ giúp tăng hiệu suất mà còn làm giảm thời gian thực thi và tối ưu hóa tài nguyên. Dưới đây là một số mẹo giúp bạn đạt được điều này.
1. Tránh Sử Dụng Hàm Đặc Biệt Trong Vòng Lặp
Khi bạn đang làm việc với vòng lặp lớn, hạn chế việc sử dụng các hàm đặc biệt bên trong vòng lặp, như getRange()
hoặc getValues()
. Thay vào đó, hãy thực hiện những thao tác này trước khi bắt đầu vòng lặp và lưu trữ kết quả vào một biến để sử dụng lại. Điều này giúp giảm gọi API và tăng tốc độ xử lý.
// Không tối ưu
for (var i = 0; i < data.length; i++) {
var value = sheet.getRange(i + 1, 1).getValue();
// Thực hiện thao tác với giá trị
}
// Tối ưu hóa
var values = sheet.getRange(1, 1, data.length, 1).getValues();
for (var i = 0; i < values.length; i++) {
var value = values[i][0];
// Thực hiện thao tác với giá trị
}
2. Sử Dụng setValues()
Thay vì setValue()
Khi Ghi Dữ Liệu Lớn
Khi bạn cần cập nhật một loạt các ô dữ liệu, sử dụng setValues()
thay vì setValue()
. Việc này giúp giảm số lần gọi API và tăng tốc độ thực thi.
// Không tối ưu
for (var i = 0; i < data.length; i++) {
sheet.getRange(i + 1, 1).setValue(data[i]);
}
// Tối ưu hóa
var range = sheet.getRange(1, 1, data.length, 1);
range.setValues(data.map(function(row) { return [row]; }));
3. Sử Dụng Các Hàm Nâng Cao Trong Apps Script
Apps Script cung cấp nhiều hàm tích hợp giúp tối ưu hóa mã nguồn của bạn. Sử dụng các hàm như map()
, filter()
, và reduce()
để thay thế vòng lặp và giảm bớt đoạn mã.
// Không tối ưu
var sum = 0;
for (var i = 0; i < data.length; i++) {
sum += data[i];
}
// Tối ưu hóa
var sum = data.reduce(function(total, value) {
return total + value;
}, 0);
4. Giảm Số Lần Gọi API Khi Làm Việc với Dữ Liệu Từ Bảng
Khi làm việc với dữ liệu từ bảng, hãy giảm số lần gọi API bằng cách sử dụng getValues()
một lần cho toàn bảng thay vì gọi từng ô một lần.
// Không tối ưu
for (var i = 1; i <= numRows; i++) {
var value = sheet.getRange(i, 1).getValue();
// Thực hiện thao tác với giá trị
}
// Tối ưu hóa
var values = sheet.getRange(1, 1, numRows, 1).getValues();
for (var i = 0; i < values.length; i++) {
var value = values[i][0];
// Thực hiện thao tác với giá trị
}
Kết Luận
Tối ưu hóa hàm trong Google Apps Script không chỉ giúp tăng hiệu suất mà còn cải thiện trải nghiệm phát triển của bạn. Sử dụng những mẹo trên để viết mã nguồn sạch sẽ, hiệu quả và thân thiện với người đọc cũng như với máy chủ tìm kiếm.
Dịch vụ lập trình ứng dụng
🎯 Lập trình API, Python, Node JS, Telegram Bot, Automate Workflow, Power Apps and Apps Script.
📒 Nhận dạy Lập trình Apps Script, Power Apps từ cơ bản đến nâng cao.
📞 +84 78 600 5534 (Zalo, WhatsApp, Telegram)
💻 Github