首页 > 解决方案 > 如何解决 javasrcipt 中过期的问题

问题描述

我正在尝试在我的移动应用程序中将数据发送到Google 表格。

数据很好,但代码没有快速返回结果这是我的 JavaScript 代码。

问题是返回结果需要很长时间(大约 360 秒)

没关系

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
}

标签: javascriptjsongoogle-sheets

解决方案


不太确定。但是您是否检查了“profile_pic.jpg”的图像大小。以我的经验,如果您使用移动应用程序相机拍摄的个人资料图像,图像尺寸非常大。如果您忘记压缩它,将需要很长时间才能上传图像(个人资料不需要这么高的高清图像,并且压缩是必要的)。

因此,请仔细检查您上传的图像的大小。如果占用太多空间,请不要忘记压缩它。


推荐阅读