V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Ansen
V2EX  ›  Firefox

Firefox 的刷新 (ctrl+r) 连 checkbox 的值都保留了

  •  1
     
  •   Ansen · 2020-11-25 09:44:39 +08:00 · 2317 次点击
    这是一个创建于 1219 天前的主题,其中的信息可能已经有所发展或是发生改变。

    后台有个功能,有个 checkbox Group 和 select 联动

    得强制刷新(ctrl+shift+r)才行

    难道是我用的姿势不对吗?

    具体操作步骤为:

    1. 按 F12 选择网络
    2. 正常选择 select,然后点按钮发送 post 请求
    3. ctrl+r 后,页面显示 select option 的值为刷新前的 option , checkbox 为初始值,类似:请先选择 select 的文字
    4. 但是直接点按钮发送 post 请求,这里可以在请求里面看到 post 的数据和上一次没有变化,

    关于刷新的官方定义

    刷新 Firefox

    第 1 条附言  ·  2020-11-25 10:36:21 +08:00
    可以在 form 或 input 标签中添加 autocomplete="off" 解决
    6 条回复    2020-11-25 11:21:27 +08:00
    noe132
        1
    noe132  
       2020-11-25 09:50:31 +08:00 via Android
    我记得 post 刷新自动 repost 上一次的参数,所以会问题要不要刷新
    Ansen
        2
    Ansen  
    OP
       2020-11-25 09:55:18 +08:00
    @noe132 #1 不是表单默认的 post,而是一个 button 调用 js 函数使用 ajax 发送 post,这种情况是不会问要不要刷新的
    cmdOptionKana
        3
    cmdOptionKana  
       2020-11-25 10:17:42 +08:00
    原来还有强制刷新,学习了,我还以为是 bug, 只好用 js 去恢复初始值。
    Ansen
        4
    Ansen  
    OP
       2020-11-25 10:20:06 +08:00
    @cmdOptionKana #3 我大概查了一下,看起来这是 Firefox 的 特性,和 chromium 系浏览器不一样
    imn1
        5
    imn1  
       2020-11-25 10:55:48 +08:00
    首先,你给的链接不对,上面写的是刷新 Firefox,不是刷新网页,两件事

    网页刷新常用操作有三种
    1.完全刷新(Ctrl-F5),这种是所有 request 重新发送,就跟获取新打开网页一样
    2.带缓存刷新(F5),这种是对没有 cache 、以及超出指定时间的 request 重新发送,其他读取缓存
    3.只刷新页面以及没有缓存的部分,目前实现的方式是地址栏原来的 url 不变回车,或者通过扩展实现

    2 和 3 的主要区别是,3 一般只会刷新页面,新页面出现不同的元素才会一并发送请求,如果已经有的元素,例如外部 js/css 等,request 相同的话不会重发;而 2,主要是根据缓存时间,一般文本类型的文件都会重新请求,媒体类型的似乎缓存时间

    而你说的问题是另一个,跟上面无关 —— 你搞错了快捷键的场景
    https://support.mozilla.org/en-US/kb/keyboard-shortcuts-perform-firefox-tasks-quickly
    浏览时的快捷键
    Reload F5 Ctrl + R

    https://developer.mozilla.org/en-US/docs/Tools/Keyboard_shortcuts
    开发时的快捷键
    Initiate reverse search through command history/step backwards through matching commands
    F9(Windows) Ctrl + R(macOS) F9(Linux)

    Run Scratchpad code Ctrl + R(win) Cmd + R (mac) Ctrl + R(linux)

    建议用 F5 再试一次看看
    Ansen
        6
    Ansen  
    OP
       2020-11-25 11:21:27 +08:00
    @imn1 #5
    感谢回复
    1 、标题上写的是:Firefox 的刷新 (ctrl+r),一看就知道是网页刷新,主流浏览器的 ctrl+r 都是网页刷新
    2 、我并没有纠结 request 是否重新发送的问题,我纠结的是 ctrl+r 后 select 和 checkbox 的值依然保留的问题
    3 、快捷键场景貌似没啥问题呀,Win 平台,不管是在开发还是浏览,ctrl + r 并不冲突

    早上大概查了一下,这个问题应该是 Firefox 和 Chromium 的刷新机制不同有关,算不上是 Firefox 的 bug,
    之所以产生这个问题,是由于我对 Firefox 了解不够导致的。

    Firefox 规范一些
    像 input 标签的 required 属性,Chrome 和 edge 中完全不起作用,但是 Firefox 就不一样,该 input 标签会必填
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1360 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 23:33 · PVG 07:33 · LAX 16:33 · JFK 19:33
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.