zoukankan      html  css  js  c++  java
  • 在CSS/JS之后开发工作人员经常会考虑的性能优化。从用户刷新页面,一次js请求下有哪些地方需要缓存

    以下的所写的知识我参考各个网站的集合觉得自己能理解的知识范围内。如果有能多考虑可以参考更多链接,当然也可以在下面提出自己的意见和参考链接一起学习。欢迎大家一起讨论,哈哈哈哈!!!

    DNS缓存

    参考链接:https://www.php.cn/website-design-ask-413877.html
    一:什么是dns缓存
    DNS缓存是指在正常访问ip之后,系统会将这个ip存储起来,当再次访问的时候,系统就会直接把本地的DNS缓存提取显示,等于是加速了网址的解析。

    DNS记录存储在区域文件中,用于将域名转换为IP地址,还包括域名的服务器名称和邮件服务器信息,例如域名前面常用的“www”,则这些别名也将列在DNS记录中。

    由于DNS记录完全由文本组成,因此在需要时可以进行修改。但是,一个错误可能会将域名重定向到错误的Web服务器,这就是为什么在保存区域文件之前准确输入DNS信息并仔细检查更改条目的原因。

    二:怎么清理dns缓存

    使用cmd命令修改,打开电脑中的运行,在输入框中输入cmd,点击确定,在窗口中输入ipconfig/flushdns,按下回车,就刷新dns缓存了。

    三:消除DNS缓存有什么好处

    很多人遇到突然就上不了网了,这时候可能就是dns指向不对了,我们只要清理一下dns缓存,重新分配IP就可以了
    参考链接:https://zhuanlan.zhihu.com/p/51842336

    CDN缓存

    一:什么是cdn?
    CDN(Content delivery networks,内容分发网络),其目的是通过在源服务器和用户之间增加一层新的网络架构,将网站的内容分发到最接近用户的网络“边缘”,使用户可以就近取得所需的内容,提高用户访问网站的响应速度。我们的日常生活中,无论是在网站上看新闻,网上购物,观看视频,还是聊天,都和CDN息息相关。
    二:cdn怎么工作的?
    为了使用户和网站源服务器之间的“距离”最短,CDN需要在不同的地理位置(PoPs,接入点)存储网站内容的缓存。一般来说,每个PoP都包含多个缓存服务器,它们的主要作用是使用户访问到最近的缓存服务器,?此减少信息的往返时间,达到减少响应时间的目的。缓存服务器负责存储和分发缓存文件,主要功能是提升网站相应速度和减少带宽消耗。这些缓存文件会被存储在固态硬盘或者RAM中。
    三:CDN缓存内容的有效期?

    1. 原站apache吐出的静态文件:由apache的expire和header模块控制

    主要两项:last-modified,cache-control:max-age

    apache缺省配置,所有静态文件在cdn只缓存3600s(需要我们按需求调整被加速服务器的apache设置),3600s后CDN失效,用户访问时会重新请求原站,如果没有变化,缓存失效周期自动延长10%。

    1. 原站jsp或php吐出的动态内容(url形式必须是静态的)

    由程序控制last-modified,cache-control:max-age public ,apache的设置将不起作用,CDN根据这两项判断是否需要到原站更新内容。

    前端优化

    HTTP请求数?

    我们都知道减少HTTP请求可以提升网站的响应能力,虽然CDN本身不能减少请求的数量,但是CDN可以通过预池连接(pre-pooling connection)来减少关闭和重新打开TCP连接引起的时间延迟。

    缓存控制?

    很多CDN都提供缓存控制选项,允许我们根据文件类型或者位置对单个文件甚至整个文件组设置缓存规则。CDN通过机器学习可以缓存动态内容,这就减轻了几乎所有的缓存管理任务。

    Gzip和Minify?

    CDN在前端优化的过程中起着关键性作用,经常被用来简化很多耗时的优化任务。例如CDN会提供自动压缩文件功能,避免了手动压缩。

    图片优化?

    CDN往往是图片缓存的首选项,并且需要购买才能使用这项服务。很多先进的CDN在原来无损压缩的概念上提出一种渐进渲染的方法,先加载像素化版本的图片,随后用一系列更“清晰”的版本代替该图片,直到实际的图片做好了加载的准备。渐进渲染可以在不牺牲图片质量的条件下缩短加载时间。

    参考链接:http://www.elecfans.com/emb/1065443.html

    HTTP缓存

    HTTP缓存是在HTTP请求传输时用到的缓存,主要在服务器代码上设置

    HTTP缓存都是从第二次请求开始的。

    第一次请求资源时,服务器返回资源,并在respone header头中回传资源的缓存参数;第二次请求时,浏览器判断这些请求参数,击中强缓存就直接200,否则就把请求参数加到request header头中传给服务器,看是否击中协商缓存,击中则返回304,否则服务器会返回新的资源。

    浏览器缓存

    浏览器缓存则主要由前端开发在前端js上进行设置。

    本地存储小容量

    Cookie主要用于用户信息的存储,Cookie的内容可以自动在请求的时候被传递给服务器。

    LocalStorage的数据将一直保存在浏览器内,直到用户清除浏览器缓存数据为止。

    SessionStorage的其他属性同LocalStorage,只不过它的生命周期同标签页的生命周期,当标签页被关闭时,SessionStorage也会被清除。

  • 相关阅读:
    SpringBoot整合RabbitMQ
    NIO
    eclipse配置maven
    IDEA常用快捷键
    IDEA如何快速查看类中的属性和方法?
    Java之IO流
    JS判断对象是否包含某个属性
    Jquery获取链接请求的参数
    JS中indexOf的用法
    JS驼峰与下划线互转
  • 原文地址:https://www.cnblogs.com/yuanliy/p/15180164.html
Copyright © 2011-2022 走看看