`
weitao1026
  • 浏览: 1054064 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

为什么js文件的名字像MD5运算过的一样?

 
阅读更多

这个过程叫做 revision。如果你有一个名字是 main.js 的脚本,且有 cache 头,浏览器就会对他进行缓存,下次再访问时文件如果尚在缓存期内就直接读取缓存,而非再次从网络加载,提升页面的访问速度。问题来了,如果这时你对这个文件进行任何修改,可能是加新功能,也可能是修正了某个导致非常严重问题的 bug,即使你更新了服务器上的 main.js,用户浏览器也是不会更新的,因为尚在缓存期内。因此根据文件内容算出一个 hash 值作为文件名,只要文件内容稳定,文件名就不发生变化,你可以把缓存期限设置为一万年,但是一旦内容变化,就生成一个具有新名字的文件,就解决了上诉问题。可以理解成这是针对同一个文件的版本控制,每个版本都会有对应的一个实体文件。以前还有做法是在文件名后面加 query 参数,文件名不变,query 变了也不会直接读取缓存。更有甚者(国内某知名 SNS 网站)现在还在用的方式是在前端用脚本加时间戳,导致文件永远不会被缓存...即使内容没变,浪费流量、拖慢加载速度。除了节省流量、提升加载速度,也使得热部署成为可能。现在所有的前端 workflow 中 revision 应该是标配了。

 

因为浏览器存在缓存机制,所以需要改变js文件的名字保证下一次浏览器可以请求到最新的js文件。
如果你愿意可以用更好看的命名方法,只要手动在js文件名后面加上一个版本号,但是手动修改文件名这种重复性劳动还是交给计算机做吧。
于是md5这种方法登场了。

分享到:
评论

相关推荐

    JS(javascript)-md5加密工具类

    在JavaScript中实现MD5加密,通常会借助于第三方库,如crypto-js、spark-md5等。 1. **MD5原理** MD5算法由Ronald Rivest在1991年设计,它将任意长度的数据转换为一个128位的哈希值,通常以32位的十六进制字符串...

    MD5加密和JS 校验码MD5加密和JS 校验码

    MD5(Message-Digest Algorithm 5)是一种广泛使用的哈希函数,它能够将任意长度的信息转化为固定长度的摘要,通常为128位,用32位十六进制数表示。MD5的主要特点是其单向性和抗碰撞性,即给定输入后可以很容易地...

    md5.min.js

    在JavaScript中,`md5.min.js` 和 `md5.js` 是两个实现MD5算法的库,用于对字符串进行MD5加密。这两个文件通常在Web开发中用于处理用户密码存储、数据验证或生成唯一标识等场景。 `md5.js` 是原始的、未压缩的源...

    在浏览器中获取文件或字串的md5的js源代码

    标题中的“在浏览器中获取文件或字串的md5的js源代码”指的是利用JavaScript实现MD5哈希算法,以处理浏览器环境中的文件或字符串。MD5(Message-Digest Algorithm 5)是一种广泛使用的加密散列函数,产生一个128位...

    JavaScript版MD5应用.zip

    在JavaScript中,MD5也有相应的实现,这对于开发Web应用,尤其是涉及到用户数据安全、文件校验或密码存储等方面非常有用。 MD5的基本原理是通过一系列复杂的数学和位操作,将输入的任意长度消息转化为128位的固定...

    利用JAVASCRIPT HMAC-MD5算法增强用户的密码安全

    在JavaScript中实现HMAC-MD5,我们可以使用现成的库,例如在提供的`md5.js`文件中,可能就包含了一个这样的实现。 首先,我们需要了解HMAC-MD5的几个关键步骤: 1. **密钥扩展**:如果密钥长度超过哈希函数的块大小...

    微信小程序md5.js

    总结一下,微信小程序中的`md5.js`文件是实现MD5加密功能的工具,主要用于数据加密、密码存储和文件完整性校验。开发者可以借助这个库轻松地在小程序中进行相关操作,提高应用的安全性。然而,考虑到MD5的安全性问题...

    一个用于md5加密的js文件

    5. **使用`md5.js`**:这个JavaScript文件可能包含了一个自定义的MD5实现,或者是对某个MD5库的封装。使用时,通常需要调用特定的函数,如`md5('your-string')`,它会返回该字符串的MD5哈希值。 总之,MD5虽然在...

    jquery.md5.js

    总的来说,`jquery.md5.js`为前端开发者提供了一个便捷的MD5加密工具,简化了JavaScript环境下的哈希计算。但随着网络安全需求的提升,我们需要适时地评估并升级我们的加密策略,以适应不断变化的威胁环境。在使用MD...

    md5js插件插件

    `md5.js` 文件是`md5js` 插件的主要实现代码,包含了MD5算法的JavaScript实现。通常,开发者只需引入这个文件,然后调用提供的函数即可进行MD5加密操作。在实际使用时,可以通过阅读源代码了解其内部实现原理,或者...

    js_MD5加密插件附使用方法

    在提供的压缩包中,包含了一个名为"md5-min.js"的文件,这很可能是一个压缩过的MD5实现,如`crypto-js`或`spark-md5`等。这些库通常已经封装好了MD5的计算逻辑,方便开发者直接调用。 1. **引入MD5库** 在HTML文件...

    md5加密js.zip

    通过引入描述中的"md5加密js"文件,开发者可以在浏览器环境中直接调用MD5加密功能,无需后端服务器支持。这在一些场景下非常实用,比如用户密码的预处理、文件校验等。 MD5的工作原理是通过一系列复杂的数学运算,...

    JavaScript的MD5加密

    MD5(Message-Digest Algorithm 5)是由Ronald Rivest在1991年设计的一种加密散列函数,它能将任意长度的信息转化为固定长度的128位(16字节)的哈希值,通常以32位的16进制数字表示。 MD5的工作原理是通过一系列...

    加密解密md5的js封装代码

    2. **文件校验**:MD5哈希值可以用来验证文件的完整性,如果两个文件的MD5值相同,那么它们内容几乎肯定一样。 3. **数字签名**:在数字签名中,MD5可以用于生成消息摘要,确保消息在传输过程中未被篡改。 需要注意...

    前段实现MD5加密技术所需js脚本

    这里提到的`md5.js`文件应该是一个JavaScript实现的MD5加密函数。下面我们将深入探讨MD5加密原理和JavaScript中如何使用它。 1. **MD5加密原理**: - 分块处理:MD5将输入数据分为512位的数据块进行处理。 - 初始...

    JS版MD5加密

    MD5,全称为Message-Digest Algorithm 5,是一种广泛使用的哈希函数,它能够将任意长度的输入(也叫做预映射)通过一系列计算转化为固定长度的输出,通常是一个128位的二进制数,以32位十六进制数的形式表示。...

    JS的MD5包,可以实现多种方式的加密

    `jshash-2.2`是一个JavaScript版本的MD5实现,它提供了简单的API,使得开发者可以在浏览器端或Node.js环境中方便地进行MD5加密。下面我们将详细介绍这个库以及MD5的相关知识。 MD5的工作原理是将输入的数据经过一...

    MD5Encode签名加密文件

    `MD5Encode.js`文件很可能是实现MD5编码和签名功能的JavaScript代码库,其中可能包含了MD5哈希计算、编码转换以及可能的加密签名过程。在使用这样的库时,开发者需要按照文档或示例代码来调用相应的函数,传入正确的...

    md5 JS 版本

    ### MD5 JS版本详解 #### 一、简介 MD5是一种广泛使用的散列算法,用于生成一个固定长度的摘要(通常为128位),它能够确保数据的完整性和一致性。在JavaScript中实现MD5算法可以应用于多种场景,如密码加密、数据...

    md5js包_1.0

    在前端开发中,MD5.js 包是一个小型且实用的库,它提供了在JavaScript环境中对字符串进行MD5加密的能力。 "md5js包_1.0" 是这个库的一个特定版本,表明它可能包含了针对1.0版本的优化或特性。这个包的主要功能是...

Global site tag (gtag.js) - Google Analytics