Chrome Safari会忽略no-store缓存控制指令

时间:2016-07-12 12:53:11

标签: google-chrome safari bfcache

我有一个页面,其中包含一个复选框和指向第A页的链接。

我点击复选框, 我点击链接, 转到第A页, 点击浏览器后退按钮, 回来

我仍然看到复选框已选中,但未清除。

我使用了正确的缓存控制标头,如下所示。

Cache-Control: no-store, no-cache, must-revalidate
Pragma: no-store, no-cache
Expires: 0

另外,试过这个:

document.body.onunload = function(){};
    document.body.onpageshow = function(evt) {
        if (evt.persisted) {
        document.body.style.display = "none";
        location.reload();
        }
    };

在chrome和safari(桌面)中没有任何作用

适用于IE,Firefox,移动设备和Safari。

请帮忙。

1 个答案:

答案 0 :(得分:0)

这似乎与Why does the checkbox stay checked when reloading the page?

的问题相同

对我有用的是将func application(_ application: UIApplication, performActionFor shortcutItem: UIApplicationShortcutItem, completionHandler: @escaping (Bool) -> Void) { if shortcutItem.type == "Micheal-Smith.Pathfinder-Society.charLog" { let sb = UIStoryboard(name: "Main", bundle: nil) let charLog = sb.instantiateViewController(withIdentifier: "CharacterLog") as! CharactersTableViewController let root = UIApplication.shared.keyWindow?.rootViewController root?.present(charLog, animated: false, completion: { completionHandler(true) }) } else if shortcutItem.type == "Micheal-Smith.Pathfinder-Society.gmTools" { let sb = UIStoryboard(name: "Main", bundle: nil) let charLog = sb.instantiateViewController(withIdentifier: "gmTools") as! UITabBarController let root = UIApplication.shared.keyWindow?.rootViewController root?.present(charLog, animated: false, completion: { completionHandler(true) }) } } 添加到页面上的表单元素中。