IIS Express杂记

JerryXia 发表于 , 阅读 (849)
web项目的缓存目录:C:\Users\Administrator\AppData\Local\Microsoft\WebsiteCacheIISExpress的日志目录:C:\Users\Administrator\Documents\IISExpress\LogsIISExpress的配置目录:C:\Users\Administrator\Documents\IISExpress\configapplicationhost.config文件比较重要,在system.applicatio... 阅读全文

设计简单的后台管理的数据排序

JerryXia 发表于 , 阅读 (820)
场景:前端需要展示一个列表(如:首页的轮播图),后台需要能够控制列表数据的排序。需求:自动规则 + 运营干预,干预包括:降低排名,提升排名,设定位置和新增item实现:在Web后台管理系统中,列表形式的数据排序功能是很常见的需求。要实现这类功能,给数据表增加一个排序字段order,越大排名越靠前,数字相同时按照自动规则(如:id)排序,这样,就可以实现了:idnameorder1tom22jack33bob1实际的排序显示为:jack tom bob 既然是后台,那么主要的用户是公司的运营... 阅读全文

静态文件(js css)压缩

JerryXia 发表于 , 阅读 (762)
closure-compiler在处理脚本中设置java环境set JAVA_HOME=C:\Program Files\jre1.8.0_60 set PATH=%PATH%;,;%JAVA_HOME%\bin\; 压缩js文件:java -jar compiler.jar --compilation_level WHITESPACE_ONLY --js hello.js --js_output_file hello-compiled.js Microsoft Ajax Minifier... 阅读全文

Cache实战

JerryXia 发表于 , 阅读 (859)
开始做过Web站点性能优化的人,应该都用过缓存这种技术。而在这篇文章中,我所说的Cache是狭义的,仅仅指的是Web站点开发使用到的ASP.NET的Cache,是使用HttpRuntime.Cache访问到的那个Cache,而不是其它的缓存技术或广义的缓存。介绍ASP.NET本身提供了一个强大的、便于使用的缓存机制,用于将需要大量服务器资源来创建的对象存储在内存中。缓存这些类型的资源会大大改进应用程序的性能。缓存实例是每个应用程序专用的,其生存期依赖于应用程序的生存期,重新启动应用程序后,... 阅读全文

缓存穿透

JerryXia 发表于 , 阅读 (1,455)
缓存系统不得不考虑的另一个问题是缓存穿透与失效时的雪崩效应。缓存穿透是指查询一个一定不存在的数据,由于缓存是不命中时被动写的,并且出于容错考虑,如果从存储层查不到数据则不写入缓存,这将导致这个不存在的数据每次请求都要到存储层去查询,失去了缓存的意义。解决办法:对所有可能查询的参数以hash形式存储,在控制层先进行校验,不符合则丢弃。还有最常见的则是采用布隆过滤器,将所有可能存在的数据哈希到一个足够大的bitmap中,一个一定不存在的数据会被这个bitmap拦截掉,从而避免了对底层存储系统的... 阅读全文

CMS系统评论模块Cache优化

JerryXia 发表于 , 阅读 (864)
如上图中所示,缓存模块设计得比较巧妙,以显示页面为单位缓存数据,因为评论页面依照提交时间降序排列,每新增一条评论,所有帖子都需要向下移动一位,所以缓存格式设计为每两页数据一个文件,前后相邻的两个文件有一页数据重复,最新的缓存文件通常情况下不满两页数据。假设评论总数95条,每页显示20条时的页面缓存结构,此时用户看到的第一页数据读取自“缓存页4”的95~76,第二页数据读取自“缓存页3”的75~56,以此类推。这样发帖动作对应的缓存更新可简化为一次文件追加写操作,效率最高。而且可保证任意评论... 阅读全文