我正在使用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();
}