缓存和页面静态化的网站性能优化方法研究(4)
时间:2017-02-14 13:03 来源:毕业论文 作者:毕业论文 点击:次
Public partial class WebUserControl:System.Web.UI.UserControl { protected void Page_Load(object sender,EventArgs e) } 这段代码设置的缓存有效时间是100秒。 3.2.2页面部分缓存的实例展示 第一次加载。 在缓存有效期内再次加载。 从上里面两个显示时间比较可以清晰看出,线上部分被部分缓存了,从加载时间看部分缓存后页面的加载速度有了提升。 4.页面静态化技术的介绍和实例实现 目前,互联网上最普通的查找资料的方式大致有三种:第一种是通过众所周知的门户网站;第二种是通过广告,通过一些免费的软件或服务将用户带到目标网站;第三种就是通过搜索引擎,通过关键字和其他的因素,把信息送到公众的面前。但是搜索引擎这种方式在公众中至少占据了90%以上。由于搜索引擎html页面收录率的极高并且静态页面资源的占用也极小,这样公众搜索资料时静态的页面加载的速度更快些。 4.1页面静态化常用方法 页面静态化的方法很多,常用的方法其中一种是使用现成的插件,比如:ISAPI_Rewrite、IIS Rewrite、Apache HTTP服务器的mod_rewrite等,它们都是基于正则表达式解析器开发的重写引擎。另一种是制作大量的静态网页,并且将他们连接到相应的动态页。在制作静态网页时,最好把head写在html中[10],这样在搜索引擎来访问动态页面之前,静态页已经生成,并能很快关联到。 其中第一种方法,使用插件辅助静态化后从页面上看起来跟静态页一样,但是如果从它的处理流程,性能效果上来看,这些其实不是真正的静态化技术,所以也有人把它称为伪静态化。这些插件工作原理有利用IIS的404错误(找不到文件错误)处理机制和URL重写。这些方法的实质上还是访问的仍是动态页面而非真正的静态页面,所以这种方法是不能优化网站性能的,它只能欺骗SEO爬虫,利于爬虫的收录提高SEO的排名。简单来说这种方法的主要目的就是给自己披上了一层SEO喜欢的皮,来欺骗蜘蛛爬虫,利于其抓取。 第二种方法是在用户访问前生成静态页面,存入服务器的相应文件夹中,等客户访问相应页面时,访问的页面对应的就是已经生成的静态页面,而不会从数据库中提取信息生成页面了。这样虽然生成静态页面的时候访问了数据库,但是,后续用户访问的时候就不需要访问数据库了。这种静态化方法减少了对数据库的访问次数,减轻了数据库的压力。 4.2页面静态化技术原理 4.2.1页面伪静态化原理 页面伪静态化的方法原理大多相似,这里介绍下IIS 404错误和URL重写的方法。 利用IIS 404错误达到伪静态化的方法是给用户提供一个html的访问页面的链接,其实这个页面是不存在的,当用户访问这个页面时,由于不存在这个页面,系统会自动查到404报错,这时,让其直接指向所需展示的页面就行了。具体实现就是在httpd.conf或.htacccess文件中使用ErrorDocument来捕获404错误。 ErrorDocument 404 /index.html DirectoryIndex index.html /path/to/notfound.html 这段代码的功能就是让所有的404错误都返回index.html这个页面。 URL重写的原理是给用户提供一个链接,当用户点击这个链接的时候,系统会自动截获用户访问的链接,然后会利用正则表达式匹配动态页面的链接,如果匹配成功了就会访问匹配到的链接进行操作,读取数据库信息,返回给原请求页面。 string url = Request.AppRelativeCurrentExecutionFilePath; Match match=Regex.Match(url,@"~/ShowRemark_(\d+).aspx"); 这段代码的功能是获取链接,并赋值给url,然后利用正则表达式匹配。 (责任编辑:qin) |