javascript需要更长的时间才能执行

时间:2018-12-11 08:43:46

标签: javascript google-apps-script

每当Google电子表格更新为手机号码时,我都试图实现发送短信的功能。但是执行起来花费的时间太长了,我肯定会犯任何错误,但找不到错误。请求您的帮助。下面是我的脚本。

function denver() {
    var ss = SpreadsheetApp.getActiveSpreadsheet();
    ss.setActiveSheet(ss.getSheetByName("Form Responses 1"));
    var sheet = SpreadsheetApp.getActiveSheet();
    var dataRange = sheet.getRange("A2:M1000");
    var data = dataRange.getValues();
    for (i in data) {
        var rowData = data[i];
        var contactx = rowData[5];
        var textx = rowData[8];
        var Decision = rowData[12];
        var EMAIL_STATUS = rowData[28];

        var messages_url = "https://49.50.67.32/smsapi/httpapi.jsp? 
        username = maruti & password = maruti123 & from = MARUTI & to = " + contactx + " & text = " + 
        textx + "&coding=0&flash=2";
        var options = {
            "method": "post",
        };

        options.headers = {
            "Authorization": "Basic " + Utilities.base64Encode("maruti:MARUTI")
        };

        UrlFetchApp.fetch(messages_url, options);
    }
}

1 个答案:

答案 0 :(得分:0)

您正在电子表格的一个看起来很大的部分(A2:M1000)上使用for循环,并且似乎在每个插值上都执行了许多内存访问,类似于in。对数据进行迭代可能非常耗时消耗并且很可能会对您的运行时间产生负面影响,因此我不愿意在大型数据集上使用for循环。提取还会增加您的运行时间,因为它需要更长的时间来检索您要的信息。如果我是您,我会将其分解为单独的函数,以查看更具体的范围