此处网站静态化并非指html网页,而是不访问数据源展现数据并保证数据是最新的,网站静态化处理方法很多,这只是其中一个方法。
以网站右侧分类为例:每添加一条数据,相对应的分类数量就会发生变化
首先分析:数据CURD操作并不频繁,且量小,虽然每次访问数据库并无问题,但是一旦访问量过大,达到数据库瓶颈就会报错,该怎么处理好呢?
既然操作不频繁为什么不做成静态或缓存呢(本站首页动态数据都以此方式处理)。
以下为实例:
首先声明两个静态变量如下:
public static string _link{get;set;} public static string link { get { if (string.IsNullOrEmpty(_link)) _link = "从数据源获取值"; return _link; } }
相信大家一看就知道是怎么回事了,使用static静态的优势来处理,如果_link为null就重新为其赋值(可以从文件、数据库等读取),并返回,在对数据库做CURD操作时直接把_link=null;读取直接读取link的值,这样就及使用了缓存也保证了数据为最新,不管访问量大不大这样处理都提高很大性能,这里抛砖引玉,给大家一个头绪。
此方法同时也有个缺点如果对数据源操作的地方过多,导致到处都是_link=null;(还会存在漏写的情况),如果以后有变动,修改起来不方便(可以把_link=null封装成一个静态方法,直接调用该方法即可),这就像杠杆一样需寻找一个平衡点。
不同的问题有不同的解决方案,只要肯静下来想想,很多问题都是可以巧妙解决的。