发现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
相关文章
|
22天前
|
前端开发 JavaScript 开发者
css和js
【4月更文挑战第22天】css和js
19 6
|
23天前
|
前端开发 JavaScript
结合CSS和JavaScript创建动态网页
【4月更文挑战第21天】结合CSS和JavaScript创建动态网页
19 4
|
6天前
|
前端开发 JavaScript 索引
CSS常见用法 以及JS基础语法
CSS常见用法 以及JS基础语法
12 0
|
8天前
|
JavaScript 前端开发
js和css以及js制作弹窗
js和css以及js制作弹窗
12 1
|
19天前
|
前端开发 JavaScript
前端 富文本编辑器原理——从javascript、html、css开始入门(二)
前端 富文本编辑器原理——从javascript、html、css开始入门
28 0
前端 富文本编辑器原理——从javascript、html、css开始入门(二)
|
19天前
|
前端开发 JavaScript 索引
前端 富文本编辑器原理——从javascript、html、css开始入门(一)
前端 富文本编辑器原理——从javascript、html、css开始入门
37 0
|
21天前
|
JavaScript 前端开发 算法
< JavaScript小技巧:如何优雅的用【一行代码 】实现Js中的常用功能 >
在开发中,采用简洁的语法和结构,遵循一致的命名规范,具有良好的代码组织和注释,能很好的提高代码的质量。可读性:易于阅读和理解。清晰的命名、简洁的语法和良好的代码结构可以使代码的意图更加明确,降低理解代码的难度,提高代码的可读性。可维护性:易于维护。当代码逻辑清晰、结构简洁时,开发者可以更快速地定位和修复bug,进行功能扩展或修改。同时,可读性高的代码也有助于后续的代码重构和优化。可扩展性:更具有扩展性和灵活性。清晰的代码结构和简洁的代码风格使得添加新功能、修改现有功能或扩展代码更加容易。
< JavaScript小技巧:如何优雅的用【一行代码 】实现Js中的常用功能 >
|
21天前
|
前端开发 JavaScript 容器
JavaScript、CSS像素动画特效代码
此示例创建一个带有像素粒子的容器,每隔300毫秒就会动态添加一个新的像素粒子,然后通过CSS的关键帧动画(`@keyframes`)使它们产生上升和逐渐消失的动画效果。你可以根据需要修改像素粒子的颜色、大小、动画效果和创建速度。
14 0
|
4月前
|
开发框架 前端开发 .NET
ASP.NET CORE 3.1 MVC“指定的网络名不再可用\企图在不存在的网络连接上进行操作”的问题解决过程
ASP.NET CORE 3.1 MVC“指定的网络名不再可用\企图在不存在的网络连接上进行操作”的问题解决过程
47 0
|
19天前
|
开发框架 前端开发 JavaScript
JavaScript云LIS系统源码ASP.NET CORE 3.1 MVC + SQLserver + Redis医院实验室信息系统源码 医院云LIS系统源码
实验室信息系统(Laboratory Information System,缩写LIS)是一类用来处理实验室过程信息的软件,云LIS系统围绕临床,云LIS系统将与云HIS系统建立起高度的业务整合,以体现“以病人为中心”的设计理念,优化就诊流程,方便患者就医。
22 0