5. 定期清除事件记录
很多用过DotNetNuke的朋友会发现数据库中[EventLog] 表(记录站点“事件记录”的表)可能会成为导致性能下降的罪魁祸首因为DNN网站中的很多操作都会被记录到事件记录(EventLog)中, 开启事件记录缓存会减缓尺寸过大的[EventLog]表对网站带来的副作用,但是非常好的的优化方法莫过于定期清除“事件记录”。 方法有很多种
·如果只有一个站点,用主机管理员(host)帐号登陆在站“点管理 -> 事件记录”中选择清除所有记录。
·如果有很多站点一个一个清除很麻烦,直接到 “主机管理 -> SQL查询” 里运行 "TRUNCATE TABLE eventlog" 则可一次清除[eventlog]的所有记录。
·如果对数据库有管理权限则可设置数据库调度任务定期自动执行"TRUNCATE TABLE eventlog"
·另外也可以使用Scheduled SQL Jobs这个免费模块来定期清空事件记录
请记住,我们必须保持“事件记录” (eventlog表)的记录数在一个很小的范围内,这样才能保证网站的运行效率,很多国外收费很贵的DNN专用主机空间所作的主要优化就是定期清除事件记录。当然在“站点管理 -> 事件记录 -> 编辑记录设置" 中关闭不需要的记录,例如APPLICATION_START, APPLICATION_END也是个不错的方法。
6. 皮肤优化
皮肤优化也是很重要的,购买或制作皮肤时一定要选用支持XHTML的使用DIV+CSS制作的皮肤,这会增加网页读取的流畅度,css也可以被浏览器缓存也可以增加页面读取速度。 另外选择一个支持CSS的菜单控件,例如House Menu皮肤控件来替换默认的皮肤控件可以减少页面尺寸30%甚至更多。优化后的皮肤可令页面读取速度减少50%以上。
另外关于客户端优化Yahoo的网站优化非常好的实践是个很好的指南,我们也可以下载Firefox中的YSlow插件来查看优化的效果。
7. 防止网站重新加载编译
很多人对DNN速度慢的印象大多来自于初次访问速度过慢,这其实是因为Asp.Net网站初次加载到程序池需要进行动态编译导致感觉速度很慢,其实加载之后速度就会很快了。 另外对于访问量不多的网站, 网站在静止一段时间后会被从程序池中踢出,当有用户访问时网站会重新加载编译,所以对于访问量少的网站用户总是觉得网站很慢。 解决这个问题的关键是保持网站在程序池中活跃,以防网站重新加载。这方面的工具不少,原理一般就是定时ping网站保持网站活跃。
我比较推荐的是一个免费工具Smarter Ping 之前有个客户的网站访问量很小导致每次访问网站都会重新加载,一般要等2,30秒,在使用了Smarter Ping之后每次都是一下就打开了不超过2秒。 Smart Ping是一个Windows Service它会定时ping你预设的网站,这里建议时间间隔设为10分钟一次,另外DNN也有提供一个专门响应这类工具的网页在网站根目录下”KeepAlive.aspx“ 添加要ping的网址时则可设为http://www.mydnn.com/KeepAlive.aspx