简体   繁体   中英

How to solve a problem time expired in javasrcipt

I am trying to send data to Google Sheet in my mobile application.

The data arrives well but the code does not return the result quickly here is my JavaScript code.

The problem is that it takes a long time (around 360s) to return the result

it's ok

var ss = SpreadsheetApp.openByUrl("https://docs.google.com/spreadsheets/d/177kUZc61U8huVsq2OcGsiF2OGdPCSxMjkoh2C4KIWPM/edit#gid=0");
var sheet = ss.getSheetByName('Info');

function doGet(e) {
    var action = e.parameter.action;

    if (action == 'UpdateInfo') {

        //return UpdateInfo(e);
    }
}

function doPost(e) {
    var action = e.parameter.action;

    if (action == 'UpdateInfo') {
        return UpdateInfo(e);
    }
}

function UpdateInfo(e) {
    var values = sheet.getRange(2, 1, sheet.getLastRow(), sheet.getLastColumn()).getValues();
    var email = e.parameter.email;
    var password = e.parameter.password;
    //var date = sheet.getRange('A').getValues();//new Date();
    var name = e.parameter.name; ///Item1
    var lname = e.parameter.lname;
    var itemuserImage = e.parameter.itemuserImage;
    var region = e.parameter.region;
    var provaince = e.parameter.provaince;
    var ecole = e.parameter.ecole;
    var Unite = e.parameter.unite;
    var niveau = e.parameter.niveau;
    //var flag = 0;
    var lr = sheet.getLastRow();

    for (var i = 1; i <= lr; i++) {
        var IDuser = sheet.getRange(i, 1).getValue();

        //row[1];
        var shetemail=sheet.getRange(i,2).getValue();
        var shetpassword=sheet.getRange(i,3).getValue();

        if (shetpassword==password && shetemail==email ) {
            sheet.getRange(i,4).setValue(name);
            // sheet.getRange(i,5).setValue(lname);
            //row[2];
            ///zoydghnmayad sheet.getRange(i,7).setValue(region);
            //row[4];
            sheet.getRange(i,8).setValue(provaince);
            //row[5];
            sheet.getRange(i,9).setValue(ecole);
            //row[5];
            sheet.getRange(i,10).setValue(Unite);
            //row[5];
            sheet.getRange(i,11).setValue(niveau);
            //row[5];
            var dropbox="USERSIMAGE prof";
            var folder, folders=DriveApp.getFoldersByName(dropbox);
            if (folders.hasNext()) {
                folder=folders.next();
            } else {
                folder=DriveApp.createFolder(dropbox);
            }
            var fileName=IDuser+"profile_pic.jpg";
            var contentType="image/jpg" , bytes=Utilities.base64Decode(itemuserImage), blob=Utilities.newBlob(bytes, contentType,fileName);
            var file=folder.createFile(blob);
file.setSharing(DriveApp.Access.ANYONE_WITH_LINK,DriveApp.Permission.VIEW);
            var fileIdumage=file.getId();
            var fileUrlumage="https://drive.google.com/uc?export=view&id=" +fileIdumage; sheet.getRange(i,6).setValue(fileUrlumage);
            //row[5];
            return ContentService.createTextOutput("its ok").setMimeType(ContentService.MimeType.TEXT);
        }
    } ///thiya loop
}

Not quite sure.But do you check your image size of "profile_pic.jpg". In my experience,if you capture the profile image using mobile app camera,the image size is extremely large.It will take ages to upload the image if you forget to compress it(no need such high HD image for profile, and compression is neccesary).

As a matter of that,please double check size of the image you were uploading.And please do not forget to compress it if it occupy too much space.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM