javascript - sf 网站如何做到每次点击‘头条’返回的状态码都是200?急!!在线等!!

查看:149
本文介绍了javascript - sf 网站如何做到每次点击‘头条’返回的状态码都是200?急!!在线等!!的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

这段时间我在做一个单页面应用,js、css、img等资源都有版本号控制,可以很好的解决缓存问题。
但是有个问题,发现一旦入口的html被缓存了,里面资源即使被版本号处理也无济于事。
我相信如果可以和sf网站那样,每点一个栏目都不会缓存,返回状态码200一定可以解决问题。
我的问题是:
1、单页面应用入口的html缓存如何处理?
2、如何做到每次刷新单页面应用都会返回状态码200?

补充:
百度的首页也是这样,每次请求主页面返回的状态码都是200。如果是由于客户端检测到本地与服务端的内容不同,但是我将每次相应的内容通过对比工具进行对比,都是一样的,这是状态码应该是304才对。


最后找到一种方式,是通过.net mvc返回入口html实现的,具体如下:


    public class F9Controller : Controller

    {

        // GET: F9

        public ActionResult Index()

        {

            return new FilePathResult("~/f9/index.html", "text/html");

        }

    }

通过这种方式可以达到每次请求的入口文件html,状态码都是200,但是其他的资源引用方式的缓存依然符合浏览器浏览器缓存策略。

如果还有其他方式,我会补充的。

解决方案

sf的头条那个页面,本身就是动态页面。
如果是静态页面,一般情况下是会被服务器当作静态资源给缓存掉的,这个时候其实还是比较好控制,只需要设置一下服务端的缓存策略即可,根据不同的服务器软件设置方式不一,但大体上都是设置某文件或者某路径下的文件不缓存,或者缩短静态缓存的时间。

题主这个情况极有可能是缓存时间过长的问题。清理下本地浏览器缓存后刷新页面还是老页面,估计就这个问题了。

然后,如果这个服务在线上,那这影响因素太多了,cdn、运营商等等都会做缓存,曾经还见过一大兄弟碰到伤心病狂的运营商连post请求都缓存的。
如果有cdn,手动更新cdn各个节点上的资源。如果是运营商的缓存,那就慢慢的等吧。。。

这篇关于javascript - sf 网站如何做到每次点击‘头条’返回的状态码都是200?急!!在线等!!的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆