reload()会导致304请求客户端无法Cache

最近发现我们项目中的一个用户体验上的问题,这个问题导致我们页面在翻页的速度非常慢,严重影响用户体验,当用户翻下一页时,css和js,图片等等,全是304状态,304表示去服务器上请求过了,发现没更新,所以不下载文件,但还是必须经过服务器请求

经过对比分析发现window.location.reload()这个方法刷新页面,这个方法其实相当于用户按浏览器的F5,在很多浏览器下,按F5会发送no-cache请求头,这导致浏览器无法使用本机的缓存,必须去连接服务器。所以我现在改掉了这个方法,换成直接设置location的值即:window.location=window.location.pathname;。经过修改后速度明显成倍提升

结论:在js刷新页面时请不是万不得已的情况不要用reload()方法,请用window.location=window.location.pathname;代替。

reload()会导致304请求客户端无法Cache,布布扣,bubuko.com

时间: 2024-12-23 07:47:19

reload()会导致304请求客户端无法Cache的相关文章

跨平台c++/boost/asio 简单的HTTP POST请求 客户端模型

作为一个呼应,写一个c++版本的同步http post客户端功能,如果你需要纯C版本,移步这里 linux下纯C简单的HTTP POST请求 客户端模型 讲解一下基本的的http post协议 通过\r\n,实现tcp的消息边界 每个请求的第一段 POST /a.b HTTP/1.1 POST http的方法,还有最常用的GET,当然还有其他的几种,略过 /a.b 请求的网页路径,比如如果是首页,最经常的就是/ HTTP/1.1 http协议的版本号,传说中已经出了2了,还有神奇的谷歌出的用来替

Net Core 的公共组件之 Http 请求客户端

Net Core 的公共组件之 Http 请求客户端 想必大家在项目开发的时候应该都在程序中调用过自己内部的接口或者使用过第三方提供的接口,咱今天不讨论 REST ,最常用的请求应该就是 GET 和 POST 了,那下面开始讲解对于 Http 请求客户端的简单封装. 首先,说一个好消息 就是 .Net Core 已将之前的 System.Net.Http 组件默认添加到了 NETStandard.Library 库中,所以直接用就好了,不需要再额外在 Nuget 上安装了,说道 Nuget 后续

一个技术汪的开源梦 —— 基于 .Net Core 的公共组件之 Http 请求客户端

一个技术汪的开源梦 —— 目录 想必大家在项目开发的时候应该都在程序中调用过自己内部的接口或者使用过第三方提供的接口,咱今天不讨论 REST ,最常用的请求应该就是 GET 和 POST 了,那下面开始讲解对于 Http 请求客户端的简单封装. 首先,说一个好消息 就是 .Net Core 已将之前的 System.Net.Http 组件默认添加到了 NETStandard.Library 库中,所以直接用就好了,不需要再额外在 Nuget 上安装了,说道 Nuget 后续计划会有一篇文章介绍

Java获取请求客户端的真实IP地址

Java获取请求客户端的真实IP地址 Java,获取客户端的IP地址的方法: request.getRemoteAddr() 这种方法在大部分情况下都是有效的.但是在通过了Apache,Squid等反向代理软件就不能获取到客户端的真实IP地址了; 如果使用了反向代理软件,将http://192.168.1.110:2046 的URL反向代理为 http://www.javapeixun.com.cn的URL时, 用 request.getRemoteAddr() 方法获取的IP地址是:127.0

asp.net Core 使用过滤器判断请求客户端是否为移动端,并实现PC端和移动端请求映射和自动跳转

很多时候我们做网站时单纯的用bootstrap等前端框架实现的前端自适应带给用户的体验并不太好,所以为了提高用户体验会专门针对PC端网页重新设计一套移动端网页,但是怎么才能做到在移动端访问PC页面的时候返回对应的移动端页面,而不是PC端页面呢?下面我们就简单的进行介绍.主要技术是asp.net core. 第一步:自定义一个校验请求客户端类型的过滤器.该过滤器要实现3个功能:1.能够校验请求客户端为移动端还是PC端:2.能够配置请求路径的映射,即当前请求的PC端的路径对应的移动端路径:3.能够配

客户端ajax请求为实现Token验证添加headers后导致正常请求变为options跨域请求解决方法

客户端为了实现token认证,通过Jquery的ajaxSetup方法全局配置headers: 全局配置headers后会导致部分不需要token认证的请求变为options请求,导致跨域访问.报错信息如下: CORS概念 支持CORS请求的浏览器一旦发现ajax请求跨域,会对请求做一些特殊处理,对于已经实现CORS接口的服务端,接受请求,并做出回应. 有一种情况比较特殊,如果我们发送的跨域请求为"非简单请求",浏览器会在发出此请求之前首先发送一个请求类型为OPTIONS的"

多级反向代理下,Java获取请求客户端的真实IP地址多中方法整合

在JSP里,获取客户端的IP地址的方法是:request.getRemoteAddr(),这种方法在大部分情况下都是有效的.但是在通过了Apache,Squid等反向代理软件就不能获取到客户端的真实IP地址了. 如果使用了反向代理软件,将http://192.168.1.110:2046/ 的URL反向代理为 http://www.javapeixun.com.cn / 的URL时,用request.getRemoteAddr()方法获取的IP地址是:127.0.0.1 或 192.168.1.

redis 突然大量逐出导致读写请求block

现象 redis作为缓存场景使用,内存耗尽时,突然出现大量的逐出,在这个逐出的过程中阻塞正常的读写请求,导致 redis 短时间不可用: 背景 redis 中的LRU是如何实现的? 当mem_used内存已经超过maxmemory的设定,对于所有的读写请求,都会触发redis.c/freeMemoryIfNeeded(void)函数以清理超出的内存. 这个清理过程是阻塞的,直到清理出足够的内存空间. 这里的LRU或TTL策略并不是针对redis的所有key,而是以配置文件中的maxmemory-

web服务器获取请求客户端真实地址的方法

服务器获取客户端或者网页的请求,获取IP时需要注意,因为一个请求到达服务器之前,一般都会经过一层或者多层代理服务器,比如反向代理服务器将http://192.168.1.10:port/ 的URL反向代理为http://www.xxx.com/ 的URL时,用request.getRemoteAddr() 方法获取的IP地址是:127.0.0.1 或 192.168.1.10 ,而并不是客户端的真实IP.但在经过代理服务器之后,请求头中都会多一些字段,我们可以根据这些字段来获取真实的IP而不是经