如果服务器返回304

时间:2018-03-11 21:21:48

标签: html5 video microsoft-edge if-modified-since

我发现第二次播放视频时Edge不起作用。我的应用使用默认的<video>标记,Edge在第二次加载视频时发送If-Modified-Since标头。如果我的服务器返回304 Not-Modified它不起作用。当我更改它以返回完整的视频时,它的工作原理。

任何可以验证此行为的人?我做错了什么,我应该在304响应中添加其他内容以使其正常工作吗?

顺便说一下,我看到Chrome和Firefox等其他浏览器在加载视频时从不发送If-Modified-Since

1 个答案:

答案 0 :(得分:5)

您可以查看this stackexchange question,在那里可以阅读:

  

根据this article,这些是浏览器的情况   请求使用If-Modified-Since:

     
      
  • 缓存条目没有到期日期,并且首次在浏览器会话中访问内容
  •   
  • 缓存条目的截止日期已过期
  •   
  • 用户通过单击“刷新”按钮或按F5
  • 请求页面更新   
     

[...]

     

可能有用的一点是添加&#34; public&#34;到缓存控制   标题,即with tempone as (SELECT deviceid, system.Timestamp as windowtime, max(value) AS P1 FROM test TIMESTAMP BY timestamp where parameter = 'p1' GROUP BY deviceid, TumblingWindow(minute, 10)), temptwo AS ( SELECT deviceid, system.Timestamp as windowtime, max(value) AS P2 FROM test TIMESTAMP BY timestamp where parameter = 'p2' GROUP BY deviceid, TumblingWindow(minute, 10)) select tempone.deviceid, tempone.windowtime, tempone.P1, temptwo.P2 from tempone join temptwo on tempone.deviceid = temptwo.deviceid and DATEDIFF(minute,tempone, temptwo) BETWEEN 0 AND 1

您也可以添加Cache-Control: public, max-age=31536000,因此可以尝试使用:

immutable