和网站所有者的日常任务。在本文中,我们将尝试了解什么是缓存以及为什么有时应该清除缓存……
首先,一个前提:缓存是不存在的,缓存有不同的类型,因为缓存这个术语具有相当普遍的含义:
首先,清空它,我稍后会解释为什么……
缓存是一种以加速计算机程序执行速度为目的的实体。有各种称为缓存的实体:有处理器缓存,磁盘缓存,内存缓存,二级和三级缓存;从各方面来说 WhatsApp 数据库 这些都是记忆,它们是计算机的“物理”元素,在本次讨论中,它们正是我们感兴趣的。
然后是DNS缓存、CSS和JavaScript缓存、服务器缓存和浏览器客户端缓存:我们一起来看看。
好的,但简单来说,什么是缓存?
为了理解我们在说什么,让我们看一个类似的例子:我们许多人在手机上使用谷歌地图。 Gmaps 是 Google 提供的地图系统,让我们可以查阅(几乎)全世界的各种类型的地图。
它的工作原理非常简单:用户选择一个点,然后应用程序查询 Google 计算机(请注意,我正在简化:)),然后将地图图像发送到屏幕。好吧:你会明白,它工作的必要条件是存在连接,否则系统就无法工作。
但是,我相信您已经注意到,如果您之前查看过相同的位置,即使没有连接,它仍然可以在您的手机上显示。怎么会?
这里也很简单:当 Gmaps 下载地图的一部分时,它会将其存储在内存中或多或少很长时间;这里,这是缓存!
因此,Google 地图缓存包含存储的部分地图,即使在没有连接的情况下也可见。
浏览器缓存
几乎所有网络浏览器(Firefox、 内容营销趋势:内容更加透明 等)都会发生同样的事情:当您导航到某个网站时,浏览器会将内容保存在内存中,然后在我们下次重新访问该网站时更快地向我们显示它们。
但有一个但是:如果网站更新了会发生什么?
没问题:浏览器足够智能(程序员通常也足够优秀)来检查您要查找的页面是否存在,该页面是否有到期日期(在此日期之后必须直接从服务器请求页面),或者所请求的页面是否在此期间已更新。
我们所描述的是浏览器缓存:它通常对用户来说运行完美且透明。
多年来,这些系统不断发展:浏览器不再将页面视为单个对象,而是将其视为由各种实体组成的一组对象;并且为每个缓存分配(或读取开发人员用特定代码指示的内容)缓存到期日期。如果通过,他们会要求提供新版本,否则则不会。那么会发生什么呢?
您现在所看到的页面与您前几天访问过的页面完全一样,内容也一样,但是我们替换了图片,或者通过 css 或 javascript 代码修改了样式。
如果由于各种原因,修改的文件(图像、css 和 js)的名称保持不变,并且调用的页面将来会过期,则浏览器会假定存储在内存中的图像、css 或 js 文件是正确的。
这就是清空缓存的著名规则:必须清空缓存才能强制重新加载更新的文件。
那么如何做到呢?
在 99% 的情况下,您只需通过单击F5键 (或更好:ctrl+F5)或ctrl+r来刷新页面(如果需要,甚至 2-3 次:P ) 。
如果这样不起作用,只需转到浏览器设置并查找相应的功能(例如,在Firefox中,您可以在:设置->首选项->网络->缓存的 Web 内容->清除中找到它;在其他浏览器中,步骤类似:如果找不到,只需在 Google 上搜索“清除缓存浏览器名称”,您就会找到数千个示例)。
还有其他类型的缓存吗?
如上所述,是的,还有许多其他类型;让我们看其中的两个,指出讨论更具技术性,我请您参阅我将在以后的文章中讨论它。
缓存服务器
这里的讨论有点复杂,但我们还是尝试一下:每次我们从浏览器调用一个页面时,浏览器都会调用托管该站点的服务器,将请求的内容发送给它。
Web 服务器通常会解释一些命令,读取一个或多个数据库,然后“格式化”页面。
现在,让我们想象一个谈论假期的网站的情况;当用户请求罗马页面时,服务器将从数据库中读取内容(例如:旅游信息、罗马的酒店、图像、广告),对其进行处理,必要时执行其他操作并显示页面。这一切可能需要一秒钟来处理。
如果在同一时间(或几乎同一时间……)有一千人请求同一个页面(或类似的页面……),系统将需要 1000 秒来响应最后一个请求(嗯,它并不完全是那样,但它给你一个概念)。网站将会显得很慢,会出现著名的旋转轮,甚至可能发生服务器没有发送任何东西的情况,因为已经过去了 X 分钟。
现在,想象一下可以做这样的事情:对于第一个看到罗马页面的人,服务器将按照上面描述的方式做出响应;然后服务器将进行上述计算并创建“罗马”页面 巴西商业名录 而且,与之前不同的是,他还将把她救到“临时”空间里。
当第二个请求同一页面时,服务器不会进行所有计算,而是显示新创建的页面。
此操作将使一切变得更快,并且只有一个限制:如果数据随时间保持不变,则没有问题。但是,如果网站管理员更改了某些内容,用户看到的页面就是旧的页面。