-
[置顶]软件接口设计怎么做?前后端分离软件接口设计思路
本文关于软件接口设计怎么做?前后端分离软件接口设计思路。好的系统架构离不开好的接口设计,因此,真正懂接口设计的人往往是软件设计队伍中的稀缺型人才。为什么在接口制定标准中说:一流的企业做标准,二流的企业...
-
[置顶]接口管理如何做?接口实现版本管理的意义和最佳方法
本文关于接口管理如何做?接口实现版本管理的意义和最佳方法。API版本管理的重要性不言而喻,对于API的设计者和使用者而言,版本管理都有着非常重要的意义。下面会从WEB API 版本管理的角度提供几种常...
-
[置顶]实现API管理系统的关键
下面将通过几个关键词的形式说明API管理的重要性和未来的实现方式。1.生命周期管理在整个API生命周期中更深入地集成所有工具将进一步提高生命周期循环的速度,而且更重要的是提供满足消费者需求的API。这...
-
一步步教你读懂NET中IL(附详细图)(在net中il是指什么)
接触NET也有1年左右的时间了,NET的内部如何实现对我产生了很大的吸引力,在msdn上找到一篇关于NET的IL代码的图解说明,写的挺不错的,在此基础上加上个人的理解,每一个步骤都附带图解说明,如果你...
-
Visual Studio 2014 和 ASP.NET 预览
VS 2013预览版在2013的TechEd大会由Brain Harry正式发布。这次发布包括了一系列的新特性:工程模板、Scaffolding 升级和Web工具。当你在VS 2013创建一个新工程的...
-
在这种情况下,如果使用了前面所说的【启用内容过期】方法,那么当有JS,CSS文件需要升级时,由于浏览器的缓存还没有过期,所以就不会请求服务器,此时会使用已缓存的版本,因此可能会出现各种奇怪的BUG
对于前面谈到的BUG,我认为根源在于引用JS,CSS文件的方式有缺陷,那种方法完全没有考虑到版本升级问题,正确的方法有二种:
1. 给文件名添加版本号,像jquery那样,每个版本一个文件(jquery-1.4.4.min.js)。
2. 在URL后面添加一个版本号,让原先的URL失效。
第一种方法由于每次升级都产生了一个新文件,所以不存在缓存问题,但是,维护一大堆文件的成本可能会比较大,因此我建议采用第二种方法来解决。
在MyMVC的示例代码中,我使用了下面的方法来引用这些资源文件:
<%= HtmlExtension.RefCssFileHtml("/css/StyleSheet.css")%>
<%= HtmlExtension.RefJsFileHtml("/js/MyPage/fish.js")%>
在页面运行时,会产生如下的输出结果:
这二个工具方法的实现代码如下(在MyMVC的示例代码中):
private static readonly string s_root = HttpRuntime.AppDomainAppPath.TrimEnd('\\');
public static string RefJsFileHtml(string path)
{
string filePath = s_root + path.Replace("/", "\\");
string version = File.GetLastWriteTimeUtc(filePath).Ticks.ToString();
return string.Format("\r\n" alt="不修改代码优化ASP.NET网站性能的一些方法" title="不修改代码优化ASP.NET网站性能的一些方法" width="200" height="150">
不修改代码优化ASP.NET网站性能的一些方法
本文将介绍一些方法用于优化ASP.NET网站性能,这些方法都是不需要修改程序代码的。它们主要分为二个方面:1. 利用ASP.NET自身的扩展性进行优化。2. 优化IIS设置。配置OutputCache...
-
不用IDE写C#的Hello World
用Visual Studio等IDE写C#的Hello World非常简单,但脱离了IDE你能不能打印出Hello World呢?这不是说工作时脱离IDE,而是学习一下CLR的执行模型.Hello W...
-
用ASP.net判断上传文件类型的三种方法
一、 安全性比较低,把文本文件1.txt改成1.jpg照样可以上传,但其实现方法容易理解,实现也简单,所以网上很多还是采取这种方法。Boolean fileOk = false;...
-
11个强大的Visual Studio调试小技巧
简介调试是软件开发周期中很重要的一部分。它具有挑战性,同时也很让人疑惑和烦恼。总的来说,对于稍大一点的程序,调试是不可避免的。最近几年,调试工具的发展让很多调试任务变的越来越简单和省时。这篇文章总结了...
-
C# 的三种序列化方法
序列化是将一个对象转换成字节流以达到将其长期保存在内存、数据库或文件中的处理过程。它的主要目的是保存对象的状态以便以后需要的时候使用。与其相反的过程叫做反序列化。序列化一个对象为了序列化一个对象,我们...
-
检测到在集成的托管管道模式下不适用的ASP.NET设置的解决方法
我们将ASP.NET程序从IIS6移植到IIS7,可能运行提示以下错误:HTTP 错误 500.23 - Internal Server Error 检测到在集成的托管管道模式下不适用的 ASP...
-
.Net 垃圾回收和大对象处理
CLR垃圾回收器根据所占空间大小划分对象。大对象和小对象的处理方式有很大区别。比如内存碎片整理 —— 在内存中移动大对象的成本是昂贵的,让我们研究一下垃圾回收器是如何处理大对象的,大对象对程序性能有哪...
-
解决asp.net中“从客户端中检测到有潜在危险的Request.Form值”的错误(中检测到有潜在危险的 Request.Form 值)
在提交表单时候,asp.net 提示:"从客户端(......)中检测到有潜在危险的 Request.Form 值" 。asp.net中的请求验证特性提供了某一等级的保护措施防止XSS攻击,asp.n...
