我正在写一个 gmail contextual gadget . 穿越这个雷区后,我陷入了一个似乎没有其他人有的问题,我的 UserPreferences 只在页面刷新时保存,如果我只是导航回收件箱和另一封电子邮件,他们就会被遗忘。 我启用了用户首选项:
<Require feature="setprefs"/>
它们看起来像这样:
<UserPref name="enabled"
datatype="hidden"
default_value="true">
</UserPref>
我已经尝试使用和不使用模块 ID 来初始化我的首选项:
var prefs = new gadgets.Prefs();
或
var prefs = new gadgets.Prefs(__MODULE_ID__);
我什至在 iframe/gadget 上用 javascipt 强制刷新,但这也不起作用,让我相信问题出在谷歌为我缓存旧数据并且在页面关闭之前不保存它,如果那有任何意义。
我在我的 url 中使用 /?nogadgetcache=1/
最佳答案
好吧,我不期待答案,所以这是我对遇到此问题的其他人的解决方案:
Google 在浏览收件箱、已发送邮件、垃圾邮件、个人邮件等时确实缓存了 UserPrefs 的所有数据。
保存 UserPrefs 后,它们会正确发送到 Google 的服务器,但最后一次提取将保留在缓存中,因此无法绕过刷新。除非必要,否则我减少了对 UserPrefs 的使用,并礼貌地通知用户刷新以查看更改是否生效。
没有关于此的文档,也许 Google 将来会对此进行更改,因此如果有人找到解决方案,请为了社区的利益将其发布在这里。 谢谢
关于javascript - 在 Google 上下文小工具中保存用户偏好,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16966433/