我正在开发一个动态网站,它在很大程度上依赖于ajax调用。我注意到,当我加载到我的首页并尝试访问此页面上的主搜索框时,需要5-7秒才能完成填充主搜索框的ajax请求。我设法发现延迟是由Google API PHP库引起的,该库在我的页面的HTML加载后立即启动,以尝试验证访问用户。我已经对部分脚本进行了基准测试,并且发现问题出现在" verifyIdToken"要完成的库的方法大约需要5秒钟。
我注意到在文档和教程中,Google说:"图书馆会自动下载并缓存验证所需的证书,如果已过期则刷新它。"
有没有人知道:
以下是我正在处理的完整代码,也许有人发现了错误:
$client_id='xxxxxx';
$client_secret='xxxxxxxx';
$client = new Google_Client();
$client->setClientId($client_id);
$client->setClientSecret($client_secret);
$client->setApplicationName("Converser Google API");
$client->addScope('https://www.googleapis.com/auth/plus.me');
$client->addScope('https://www.google.com/m8/feeds');
$client->addScope('https://mail.google.com/');
$client->addScope('email');
$client->setRedirectUri('postmessage');
$client->setAccessType("offline");
$client->setApprovalPrompt("force");
if (!isset($_SESSION['google-api']['access_token'])) {
if (isset($_REQUEST['code'])) g_exchangeCode($_REQUEST['code']);
else g_kill(0);
} else {
$accessToken=$_SESSION['google-api']['access_token'];
$client->setAccessToken($accessToken);
$returnData['auth_by']='token';
}
if($client->isAccessTokenExpired()) {
if (isset($_REQUEST['gid']) && !empty($_REQUEST['gid'])) g_refreshToken($_REQUEST['gid']);
else if (isset($_REQUEST['code']) && !empty($_REQUEST['code'])) g_exchangeCode($_REQUEST['code']);
else g_kill(1);
}
$token_data = $client->verifyIdToken()->getAttributes();