首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

让DNN站点主页速度提高10倍

2012-08-26 
让DNN站点首页速度提高10倍????? DNN站点的速度问题让我很头疼,如果用户第一次访问站点,访问时间一般是7秒

让DNN站点首页速度提高10倍

????? DNN站点的速度问题让我很头疼,如果用户第一次访问站点,访问时间一般是7秒左右。如果站点的应用程序池被IIS

?

回收了,要重新编译,时间一般是10到15秒。当然打开以后再访问,由于不需要再次编译并且相关js和css文件都缓存到了

?

客户端,时间在1.5秒左右。

?

????? 悲催的是,我的站点大部分时间都没人访问,应用程序池被IIS回收了,好不容易有个用户访问还得现编译,大部分人

?

都等不了10几秒就把窗口关了。

?

幸亏我的站点是个人博客,无所谓。不过前几天帮朋友做了一个企业网站,这可不是小问题了啊。

?

  冥思苦想终于找到了解决办法。下面从俩方面阐述:

?

  1、IIS应用程序池的回收问题

?

  这是大部分ASP.NET站点的通病,第一次访问都很慢,不过大网站由于不断的有用户访问,不至于被IIS回收了,但小

?

网站就不行了。

?

  网上的解决办法是在Global.asax文件里的事件里加一个缓存对象,当缓存对象到期时执行回调函数访问本站点。效果

?

是每隔一段事件网站就被访问一次,不至于被IIS回收了。

?

  其实DNN本身就有调度机制,只需要实现DotNetNuke.Services.Scheduling.SchedulerClient抽象类,然后配置

?

一下就可以实现每隔一段时间访问一下自己网站的效果。

?

在DoWork方法中进行具体的操作,代码如下:  

?

这个功能实现起来比较简单,就不细说了,完整的源代码和配置方法在这个页面http://www.icommon.net/DNNDownload.aspx

?

  2、首页资源的下载问题

?

  在这里我没有对整个站点的资源进行优化,只是对首页进行了优化。我觉得如果首页打开特别慢的话用户会觉得站点出

?

问题了,就直接关了。如果首页很快就打开了,其他页面慢点也没那么大影响,至少说明站点没有问题。DNN的特点是只

?

要客户端打开过一个页面下载过一次js和css了,打开其他页面就会快很多了。

?

  我的方法是将首页静态化,将aspx页面里的内容转换成htm页面。

?

  理想的情况是使用调度程序每隔一段时间将aspx类型的首页的内容转到一个静态文件里面。

?

  先介绍一下怎么手动改吧:

?

  首先打开首页,我的首页地址是home.aspx,在浏览器窗口右键查看源文件,复制出来,然后将里面的没有用的都删

?

掉。我发现里面的js没有任何作用,于是都删了,页面大小从600k变为90k。将这个文件保存成htm文件,传到主机空

?

间。访问一下,和aspx的首页页面没有任何区别。你可以对比一下我那两个页面www.icommon.net/default.htm和www.icommon.net/home.aspx。

?

  下面是设置首页地址。如果你的DNN站点只有一个门户,就很简单了,在主机提供商的管理页面将站点的首页指向该

?

htm文件即可。但是,由于我的DNN程序有两个门户在用,这样一改我的两个站点首页就变成一个了。所以还需要额外的

?

工作,以管理员身份进入DNN站点,添加一个页面例如叫做index.aspx,配置这个页面为链接类型,然后配置301重定向

?

到刚才那个htm文件,并且设置这个index.aspx为站点的首页。这样的话,用户输入域名后就重定向到htm文件了,而且

?

DNN里面的多个门户也互不影响。

?

  通过这两方面的改造,速度有了质的飞跃,下面是百度统计工具提供的速度测试,图片中是我的另外那个DNN门户

?

www.cstdwl.com,需要用作企业站点,所以重点测了一下。

?

模拟改造前(home.aspx是以前的首页,在web.config加个空格,强制程序再次编译,模拟IIS回收应用程序池):

?

让DNN站点主页速度提高10倍

?

改造后:

?

让DNN站点主页速度提高10倍

?

转自博客园:http://www.cnblogs.com/icommon/archive/2012/03/29/2422521.html

?

?

热点排行