ASP.NET中的MasterPage缓存问题,无解。。。

a21999 2010-09-30 01:28:49
我的网站中有一个MasterPage,MasterPage里面有一张图片。
我想把这个MasterPage里面的图片或者说这个MasterPage缓存起来。。。
但是貌似MasterPage不支持OutputCache命令,这可如何是好?


还有一个问题,我的ASP.NET页面加载的速度特别慢,只有一张不到70K的背景图,还有3个button,外加一个gridview(只TOP了5条记录),我就在想,是不是和用了MasterPage有关系呢,还是因为背景图加载的速度太慢?

ASP.NET的网站如何提速?纠结中。。。看来国庆假期泡汤了。。。
...全文
116 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
fellowcheng 2010-09-30
  • 打赏
  • 举报
回复


第一、优化图片
几乎没有哪个网页上是没有图片的。如果你经历过56K猫的年代,你一定不会很喜欢有大量图片的网站。因为加载那样一个网页会花费大量的时间。即使在现在,网络带宽有了很多的提高,56K猫逐渐淡出,优化图片以加快网页速度还是很有必要的。优化图片包括减少图片数、降低图像质量、使用恰当的格式。
1、减少图片数:去除不必要的图片。
2、降低图像质量:如果不是很必要,尝试降低图像的质量,尤其是jpg格式,降低5%的质量看起来变化不是很大,但文大小的变化是比较大的。
3、常识使用脚本文件代替效果:
比如一些web2.0的样式,如果使用ps制作,每个图片基本会增加%5-%25的大小成本.相反,使用javascript代码来实现效果,仅仅只增加几个字节.

第二、图像格式的选择
一般在网页上使用的图片格式有三种,jpg、png、gif。三种格式的具体技术指标不是这篇文章探讨的内容,我们只需要知道在什么时候应该使用什么格式,以减少网页的加载时间。
1、JPG:一般用于展示风景、人物、艺术照的摄影作品。有时也用在电脑截屏上。
2、 GIF:提供的颜色较少,可用在一些对颜色要求不高的地方,比如网站logo、按钮、表情等等。当然,gif的一个重要的应用是动画图片。
3、 PNG:PNG格式能提供透明背景,是一种专为网页展示而发明的图片格式。一般用于需要背景透明显示或对图像质量要求较高的网页上。

第三、优化CSS
CSS叠层样式表让网页加载起来更高效,浏览体验也得到提高。有了CSS,表格布局的方式可以退休了。
但有时我们在写CSS的时候会使用了一些比较罗嗦的语句,比如这句:

复制内容到剪贴板
代码:
margin-top: 10px;
margin-right: 20px;
margin-bottom: 10px;
margin-left: 20px;
你可以将它简化为:
margin: 10px 20px 10px 20px;
又或者这句:
<p class="decorated">A paragraph of decorated text</p>
<p class="decorated">Second paragraph</p>
<p class="decorated">Third paragraph</p>
<p class="decorated">Forth paragraph</p>
可以用div来包含:
<div class="decorated">
<p>A paragraph of decorated text</p>
<p>Second paragraph</p>
<p>Third paragraph</p>
<p>Forth paragraph</p>
</div>

第四、网址后加斜杠

有些网址,比如http://www.taoxoo.com/detsquare 当服务器收到这样一个地址请求的时候,它需要花费时间去确定这个地址的文件类型。如果"detsquare"是一个目录,不妨在网址后多加一个斜杠,让其变成http://www.taoxoo.com/detsquare/,这样服务器就能一目了然地知道要访问该目录下的index或default文件,从而节省了加载时间。

第五、标明高度和宽度

这点很重要,但很多人由于懒惰或其它原因,总是将其忽视。当你在网页上添加图片或表格时,你应该指定它们的高度和宽度,也就是height和 width参数。如果浏览器没有找到这两个参数,它需要一边下载图片一边计算大小,如果图片很多,浏览器需要不断地调整页面。这不但影响速度,也影响浏览体验。

下面是一个比较友好的图片代码: 复制内容到剪贴板
代码:
<img id="img" height="200" width="450" src="" alt="banner" />当浏览器知道了高度和宽度参数后,即使图片暂时无法显示,页面上也会腾出图片的空位,然后继续加载后面的内容。从而加载时间快了,浏览体验也更好了



第六、减少http请求

当浏览者打开某个网页,浏览器会发出很多对象请求(图像、脚本等等),视乎网络延时情况,每个对象加载都会有所延迟。如果网页上对象很多,这可以需要花费大量的时间。

因此,要为http请求减负。如何减负?

1、去除一些不必要的对象。

2、将临近的两张图片合成一张。

3、合并CSS文件
看看下面这段代码,需要加载三个CSS文件:
<link rel="stylesheet" type="text/css" href="/body.css" />
<link rel="stylesheet" type="text/css" href="/side.css" />
<link rel="stylesheet" type="text/css" href="/footer.css" />
我们可以将其合成一个:
<link rel="stylesheet" type="text/css" href="/style.css" />
从而减少http请求。

第七、其它小技巧

1、去除不必要加载项。
2、如果在网页上嵌入了其它网站的widget,如果有选择余地,一定要选择速度快的。
3、尽量用图片代替 flash,这对SEO也有好处。
4、有些内容可以静态化就将其静态化,以减少服务器的负担。
5、统计代码放在页尾(或者使用延迟加载)。
sweetwxh 2010-09-30
  • 打赏
  • 举报
回复
图片和页面缓存无关,页面缓存只是将你的页面动态数据缓存到内存当中(相当于把当有请求的时候,就把缓存的数据直接发给客户端,而不需要经过你后台代码的处理了)。图片缓存的话,那是客户端做的事情了。MasterPage要用OutputCache的话,你可以用“用户控件”,在用户控件里面设置缓存。

还有一点,要想提速,首先想办法的是降低你的页面内容,就你说的70KB的背景图,那就是相当的大了,如果你做的是一个网站,运行于Internet当中,恰好又是用的空间,没有自己的服务器,那么有个解决办法,你把图片放到网盘去,然后页面去网盘加载那个图片,这样可以减轻你的服务器负担,客户端那边你也没有办法,只能说客户现在带宽都比较高了。

网盘的话,我推荐微软的SkyDrive,有25G,速度也很快,平时一些大的图片文件我都用的这个。
porschev 2010-09-30
  • 打赏
  • 举报
回复
这和模版页应该没大多关系。。

东西又那么少图片加载还慢。。。应该是你程序问题。。。

图片加载慢还有一个可能就是你网站所以图片都放在一个文件夹下。。

图片太多。。找的慢。。

种草德鲁伊 2010-09-30
  • 打赏
  • 举报
回复
图片和页面的缓存无关..

62,272

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧