2017-05-19 81 views
0

我通過google表單腳本函數從id獲取聯繫人,並且需要10到35秒才能返回聯繫人。這裏是代碼:ContactsApp.getContactById()緩慢的原因

var id = 'http://www.google.com/m8/feeds/contacts/xxxxxxxxx%40gmail.com/base/xxxxxxxxxx'; 
var contact = ContactsApp.getContactById(id); 

有沒有什麼辦法來加快這個調用?使用電子表格(及其他產品)一起使用時

var myContactsGroup = ContactsApp.getContactGroup('System Group: My Contacts'); 

回答

1

應用腳本執行很慢:讓所有300+聯繫人組中只需要不到一秒鐘。想象一下它必須穿越的所有行和列。你可以做的是找到方法來優化你的操作。這裏是我的發現:

App Script Best practices

  • 最小化調用其他服務

  • 協作使用Team驅動器,如果 可能

  • 使用批處理操作
  • 避免在庫UI重腳本
  • 使用 緩存服務
  • 說明包含在文檔鏈接中。

Don't make several calls when you can do it in one.

電話是相對昂貴,所以使得更少的調用是自然 要提高性能。其次,如果您可以批量調用 (更多關於批處理),這意味着您不太可能交織讀取和寫入(獲取和設置)。

博客中包含代碼比較。

+0

謝謝你的回答。我特別發現,聯繫人的設置屬性非常慢。我可以將我的所有聯繫人(〜300)和呈現在電子表格中(格式化,隱藏列,製作另一張表格等),比我在聯繫人上保存單個電話號碼的速度快10倍。 –

相關問題