Google Calendar API的'gapi.client.load'功能需要很长时间才能加载

时间:2016-07-07 03:56:36

标签: javascript api google-calendar-api

我正在使用Google Calendar API在24小时内检索公共日历中的所有事件,并将它们输出到控制台(暂时)。

我的代码似乎正常运行,但在页面加载后,请求完成需要很长时间(从600-2000毫秒不等)。

使用performance.now(),我已将其钉入加载客户端库接口的函数 - gapi.client.load

是否有更有效的方法来加载它,所以它不需要这么长时间?或者关于如何快速检索这些事件的其他想法?下面是我正在使用的代码。

var Hours = {

clientId : 'CLIENTID',
apiKey : 'APIKEY',
calendarID : 'CALENDARID',
userTimeZone : 'Chicago',
scopes : 'https://www.googleapis.com/auth/calendar',

handleClientLoad : function() {
    gapi.client.setApiKey(this.apiKey);
    gapi.auth.authorize({client_id: this.clientId, scope: this.scopes, immediate: true}, this.handleAuthResult);

},

handleAuthResult : function(authResult) {
    if (authResult) {

        Hours.makeAPICall();

    }
}, 

makeAPICall : function() {
    var today = new Date(); 
    var tomorrow = new Date();
    tomorrow.setTime(tomorrow.getTime() + (24*60*60*1000));

    var t0 = performance.now();
    gapi.client.load('calendar', 'v3', function () {

        var request = gapi.client.calendar.events.list({
            'calendarId' : Hours.calendarID,
            'timeZone' : Hours.userTimeZone, 
            'singleEvents': true, 
            'timeMin': today.toISOString(),
            'timeMax': tomorrow.toISOString(),
            'maxResults': 10, 
            'orderBy': 'startTime'});

        var t1 = performance.now();
        console.log(t1-t0);

        request.execute(function (resp) {
            for(var i = 0; i < resp.items.length; i++) {
                console.log(resp.items[i].start);
                console.log(resp.items[i].end);
                console.log('---');
            }
        });
    });
}
}

var initHours = function() {
    Hours.handleClientLoad();
}

0 个答案:

没有答案