Aru*_*san 3 javascript browser-cache gmail-api gapi
我正在使用javascript gmail api来使用threadId获取电子邮件线程.我使用以下代码:
var request = gapi.client.gmail.users.threads.get({
'userId': 'me',
'id': '123abc'
});
request.execute(function(response) {
var messages = response.messages;
});
Run Code Online (Sandbox Code Playgroud)
这是第一次特定的threadId,它工作正常.并且对于进一步的请求,即使线程有更多的电子邮件,它也会返回相同数量的消息.但是,如果我从Chrome开发者工具 - 网络选项中清除gapi网址的浏览器缓存,则响应会提供正确数量的电子邮件.
例:
- >使用threadId'123abc'执行请求,目前线程中有3封电子邮件.请求的响应是正确的,长度为3 response.messages.
- >然后我再发一封电子邮件作为回复此帖子,然后再次执行相同的请求.但是响应仍然是长度为3的旧响应response.messages.
- >尝试多次运行相同的请求但得到相同的响应.
- >然后清除此网址的浏览器缓存并再次请求,现在响应正确,长度为4 response.messages.
尝试在html页面中添加以下元标记,但不起作用:
<meta http-equiv='cache-control' content='no-cache'>
<meta http-equiv='expires' content='0'>
<meta http-equiv='pragma' content='no-cache'>
Run Code Online (Sandbox Code Playgroud)
尝试添加随机数与页面网址和请求,但没有工作.
尝试使用gapi脚本链接添加随机数,但没有奏效 <script src="https://apis.google.com/js/client.js?onload=AuthIt&cacheBurster=123123123123"></script>
是否有任何代码可以禁用gapi请求缓存或任何其他方法来解决此问题?
最后通过在gapi请求中的'metadataHeaders'字段中添加一个随机数来得到解决方案:
var request = gapi.client.gmail.users.threads.get({
'userId': 'me',
'id': '123abc',
'metadataHeaders': Math.random()
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
322 次 |
| 最近记录: |