发现ASP.NET一个小技巧--真爱生命,远离js、css版本号

简介: 被折腾的日子       以前不觉得js、css版本号的处理是个问题,直到最近被折磨的吐血,才发现往往不是问题的地方恰好就是问题所在。       以前接触的项目js和css一直都是放在项目下面的js和css文件夹下,没有版本号,风平浪静,现在的项目,为js和css单独搭建了一台服务器,好像还有什么nginx,竟然能把所有的js和css缓存起来,你说缓存会失效吧,他总是不在我想要的时候失效,出现bug总是因为缓存失效。

被折腾的日子

      以前不觉得js、css版本号的处理是个问题,直到最近被折磨的吐血,才发现往往不是问题的地方恰好就是问题所在。

      以前接触的项目js和css一直都是放在项目下面的js和css文件夹下,没有版本号,风平浪静,现在的项目,为js和css单独搭建了一台服务器,好像还有什么nginx,竟然能把所有的js和css缓存起来,你说缓存会失效吧,他总是不在我想要的时候失效,出现bug总是因为缓存失效。

     项目之前是用一个可配置的版本号来处理这个问题,版本号放在 appSettings里面,这样出了几个小问题

     1 修改版本号时需要iis重启

     2好几台服务器,appSettings 不能批量上传,谁也不敢保证每台服务器的appSettings配置一样,结果有一个项目里面配置还真不一样

     3不是所有js在改版本号时都修改好了,可以升级版本号,因为我不知道其他人是否在改js

常规尝试

     然后我发现,其他人是这么处理的,在页面上引用js时,在大版本号后面加一个小本版号,日子就这么过去了,结果问题又出现了

     1现在修改版本号变成了现在服务器上下载相关文件,修改本版号,再上传文件,再在本地修改对应的版本号(如果本地可以修改的话就该,不能修改[文件被人占着]找个地方记录一下服务器的版本号)

    2有时候改版本号非常频繁,例如项目上线调试,下载-》修改-》记录-》上传 ,和死循环一样

    3最要命的是,有时候改一个js文件,却不知道什么地方用了这个js,用的是什么版本,只有等到bug出现时才能发现

新的尝试

现在我是这么处理的

例如博客园的这个js

<script src="http://common.cnblogs.com/blog/script/site.js" type="text/javascript"></script>

<script src="http://common.cnblogs.com/blog/script/site1.1.1.js" type="text/javascript"></script>

 

首先 创建一个和js名称一样的页面

微博桌面截图_20120529211400

代码如下

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="site.aspx.cs" Inherits="jsv_site" %>
 
<script src="http://common.cnblogs.com/blog/script/site.js?v=<%=big %>s<%=small %>" type="text/javascript"></script>

其中big为站点统一版本号,smal为当前js的小版本号,这里可以直接替换为数字

例如

<script src="http://common.cnblogs.com/blog/script/site.js?v=<%=big %>sa" type="text/javascript"></script>

 

以后修改可以继续追加小版本号例如abcdef等,必要时小版本号可以还原回去

或<script src="http://common.cnblogs.com/blog/script/site1.1.2.js" type="text/javascript"></script>

 

具体用到js的地方,下面这么引用就行了

<head>
    <title></title>
<%--    <script src="http://common.cnblogs.com/blog/script/site.js" type="text/javascript"></script>--%>
    <%this.Server.Execute("~/jsv/site.aspx"); %>
</head>

 

以后修改版本号修改上传site.aspx文件就行了!而且这个文件很少会被人占用,本地修改直接上传,连备份也省了

关于Server.Execute

Server.Execute方法允许当前的ASPX页面执行一个同一Web服务器上的指定ASPX页面,当指定的ASPX页面执行完毕,控制流程重新返回原页面发出Server.Execute调用的位置

博客园为啥没版本号

博客园的js是放在common.cnblogs.com下面,但是他为什么版本号呢?

可能是js修改不够频繁造

为什么js修改不够频繁呢?

因为没有需求

为什么没有需求呢?

因为没有用户提需求

当然,也可能是需求太多,忙不过来

最近貌似在折腾博客园知识库还是什么的,貌似要做类似基维百科的东西,

个人觉得博客园本身就应该成为基维百科类的东西,而不是做什么知识库

一人一行代码,那也是很多行代码

当然这需要一个很nb的源代码管理的东西和一个很nx的线上代码版本管理的东西和一个很nb的数据库数据版本管理的东西

当然也是需要nb的设计和开放的产品理念以及用于尝试的心态

开放代码的博客园就可以成为nb的代码的基维百科

test
相关文章
|
19天前
纸屑飘落生日蛋糕场景js+css3动画特效
纸屑飘落生日蛋糕CSS3动画特效是一款js+css3制作的全屏纸屑飘落,生日蛋糕点亮庆祝动画特效。
36 3
|
1月前
|
缓存 前端开发 JavaScript
优化CSS和JavaScript加载
优化CSS和JavaScript加载
|
1月前
|
缓存 前端开发 JavaScript
优化CSS和JavaScript加载
Next.js和Nuxt.js在优化CSS和JavaScript加载方面提供了多种策略和工具。Next.js通过代码拆分、图片优化和特定的CSS/JavaScript优化措施提升性能;Nuxt.js则通过代码分割、懒加载、预渲染静态页面、Webpack配置和服务端缓存来实现优化。两者均能有效提高应用性能。
|
1月前
|
前端开发 JavaScript
用HTML CSS JS打造企业级官网 —— 源码直接可用
必看!用HTML+CSS+JS打造企业级官网-源码直接可用,文章代码仅用于学习,禁止用于商业
143 1
|
1月前
JS+CSS3文章内容背景黑白切换源码
JS+CSS3文章内容背景黑白切换源码是一款基于JS+CSS3制作的简单网页文章文字内容背景颜色黑白切换效果。
21 0
|
Web App开发 JavaScript 前端开发
|
1月前
|
JavaScript 前端开发
JavaScript中的原型 保姆级文章一文搞懂
本文详细解析了JavaScript中的原型概念,从构造函数、原型对象、`__proto__`属性、`constructor`属性到原型链,层层递进地解释了JavaScript如何通过原型实现继承机制。适合初学者深入理解JS面向对象编程的核心原理。
29 1
JavaScript中的原型 保姆级文章一文搞懂
|
5月前
|
JavaScript Java 测试技术
基于springboot+vue.js+uniapp的客户关系管理系统附带文章源码部署视频讲解等
基于springboot+vue.js+uniapp的客户关系管理系统附带文章源码部署视频讲解等
107 2
|
5月前
|
JavaScript Java 测试技术
基于springboot+vue.js+uniapp的小区物流配送系统附带文章源码部署视频讲解等
基于springboot+vue.js+uniapp的小区物流配送系统附带文章源码部署视频讲解等
155 4
|
5月前
|
JavaScript Java 测试技术
基于springboot+vue.js+uniapp的宠物援助平台附带文章源码部署视频讲解等
基于springboot+vue.js+uniapp的宠物援助平台附带文章源码部署视频讲解等
90 4