Win2003 iis6.0网站服务器性能优化指南
Windows Server自带的互联网信息服务器IIS是架设网站服务器的常用工具,它是一个既简单而又麻烦的东西,新手都可以使用IIS架设一个像模像样的Web站点来,但配置、优化IIS的性能,使得网站访问性能达到最优状态却不是一件简单的事情,这里我就介绍一下如何一步一步的优化你的IIS服务器。 服务器端环境,我们以Windows Server 2003的IIS6.0为例,客户端环境为Mozilla Firefox 3.0,同时安装Yahoo的YSlow扩展。 YSlow是Yahoo开发者团队发布的一款基于Firebug的插件。用于分析网页,并根据一些高性能网站的规则进行相应的评级打分,对于网页性能优化有很好的帮助作用,告诉你那些部分影响了你的网页速度,并告诉你如何基于某些规则而进行优化。我们对于IIS的优化策略就是基于YSlow的。 使用安装了YSlow的Firefox打开目标网站,然后点击YSlow图标,点击Performance,如下图所示。 其中Performance Grade为YSlow对你网站的评级,A(100分)为最高,F为最低,后面列出如何进行修改,下面我以IIS 6.0为例介绍一下如何进行优化网站性能。 1、减少HTTP请求数量 这主要是修改网站代码,减少外部图片、CSS、JS等文件数量,手动合并多个CSS/JavaScript文件。IIS那里不用设置。 2、使用CDN 对于小网站来说,这个就免了吧。当然有钱人可以试试,可以从技术上解决用户访问网站响应速度慢的问题。 3、启用内容过期 对于静态文件启用内容过期可以提高访问性能。首先网站的目录要划分合理,图片、CSS、JavaScript均放在单独目录下,然后在IIS中选择目录,点属性-HTTP头,启用内容过期,可以选择30天后过去,这样,用户浏览器将比较当前日期和截止日期,以便决定是显示缓存页还是从服务器请求更新的页,由于图片、CSS、JS通常变化较少,因此基本上都从本地缓存读取,从而加快显示速度。 4、启用Gzip压缩 HTTP压缩是在Web服务器和浏览器间传输压缩文本内容的方法。HTTP压缩采用通用的压缩算法如Gzip等压缩HTML、JavaScript或 CSS文件。压缩的最大好处就是降低了网络传输的数据量,从而提高客户端浏览器的访问速度。 使用方法是,右击“网站”->“属性”,选择“服务”。在“HTTP压缩”框中选中“压缩静态文件”,“临时目录”建议单独设置另一个盘的目录下。 之后,IIS管理器中,右击“Web服务扩展”->“增加一个新的Web服务扩展”,在“扩展名”中输入“HTTPCompression”,添加“要求的文件”为C:\WINDOWS\system32\inetsrv\gzip.dll,其中Windows系统目录根据您的安装可能有所不同,选中“设置扩展状态为允许”。 最后,使用文本编辑器打开C:\Windows\System32\inetsrv\MetaBase.xml,在HcFileExtensions中增加需要压缩的静态文件后缀名,默认为HTML和TXT文件,建议再添加上js、css等,不要添加图片或ZIP等已经被压缩的文件。 5、将样式文件放在头部 这是基本的HTML代码风格,将所有的CSS文件都放在HTML页面的头部。 6、将脚本文件放在尾部 这也是基本的HTML代码风格,将所有的JavaScript文件都放在HTML页面的尾部。 7、避免CSS表达式 这点很简单,因为大多数人从来不用CSS表达式。 8、使用外部的JavaScript和CSS 将所有的JavaScript和CSS都做成外部文件的形式进行引用,这主要是为了让这些文件可以被浏览器缓存起来,参见第三点的介绍。 9、减少DNS查询 域名的DNS查询会带来额外的访问开销,减少页面内文件的主机域名数量,一个页面的主机域名保持在2-4个以内,这样就不会降低页面的装入速度。 10、压缩JavaScript文件 压缩脚本文件,删除不必要的字符,可以改善加载时间,目前有很多JavaScript文件的压缩工具,我这里有一个GUI界面的JS压缩工具供下载。 11、避免重定向 网页的重定向会带来额外的运行开销,因此要避免页面进行重定向跳转操作。 12、删除重复脚本 一个页面两次包含同一个JavaScript文件会影响加载的性能,因此需要将重复的脚本文件删除。 13、配置ETag 这是一个令人迷惑的问题。理论上说将服务器的ETag删除会提高HTTP请求的性能,但是按照微软官方提供的修改方法配置IIS 6.0,并没有实际效果,最终我使用了一个第三方的DLL文件,以ISAPI的方式实现了删除ETag的功能。 经过上面这些网站前端重构和WEB服务器的配置修改,我们的页面结构就变得更加规范,重构的页面大多都会取得不错的YSlow的评分,总体来说性能提升了不少。对于最终用户来说,也会明显感受到访问网站速度变快了很多,网站的浏览体验得到了较好的提升。 from http://www.w-link.org.cn/post/46.html
View DetailsWin2003 IIS6.0性能优化指南
1、禁止多余的Web服务扩展 IIS6.0支持多种服务扩展,有些管理员偷懒或者不求甚解,担心Web运行中出现解析错误,索性在建站时开启了所有的Web服务扩展。殊不知,这其中的有些扩展比如“所有未知CGI扩展”、“在服务器端的包含文件”等是Web运行中根本用不到的,况且还占用IIS资源影响性能拖垮Web,甚至某些扩展存在漏洞容易被攻击者利用。因此,科学的原则是,用到什么扩展就启用什么扩展。 如果企业站点是静态页面,那什么扩展都不要开启。不过现在的企业站点都是交互的动态页面比如asp、php、jsp等。如果是asp页面,那只需开启“Active Server Pages”即可。对于php、jsp等动态页面IIS6.0默认是不支持的需要进行安装相应组件实现对这些扩展的支持。不过,此时用不到的扩展完全可以禁用。 禁止Web服务扩展的操作非常简单,打开“IIS管理器”,在左窗格中点击“Web服务扩展”,在右侧选择相应的扩展,然后点击“禁用”即可。(图1) 2、删除不必要的IIS扩展名映射 IIS默认支持.asp、.cdx等8种扩展名的映射,这其中除了.asp之外其他的扩展几乎用不到。这些用不着的扩展会加重web服务器的负担,而且带来一定的安全隐患。比如.asa,.cer等扩展名,就可以被攻击者利用来获得webshell。因为一般的asp系统都会限制asp文件的上传,但如果没有限制.asa或者.cer等扩展名,攻击者就可以更改文件后缀突破上传限制,运行.asa或者.cer的文件获得webshell。(图 2) 删除IIS扩展名的操作是:打开IIS管理器,右键单击“默认Web站点”选择“属性”,点击“主目录”选项卡,然后点击“配置”打开应用程序窗口,最后根据自己的需要选择不必要的应用程序映射比如.shtml, .shtm, .stm等,然后点击“删除”即可。(图3) 3、取消访问记录 IIS6.0默认开启对于web的访问记录。当开启记录功能后,IIS会事无巨细地忠实记录所有的web访问记录。这些记录文件的内容是非常庞杂的,比如访问时间、客户端IP、从哪个链接访问、 Cookies等,另外还包括 Method(方法), UserAgent(用户代理)等。这些记录不但占用大量的磁盘空间还大大地影响了web服务器的性能。有人做过评测,停止访问记录可以提升5%到8%的 web性能。而且这些记录对于一般用户,特别是中小型的Web站点没有什么用途,简直太耗费系统性能了,因此建议关闭它。 取消访问记录的操作是:打开IIS管理器,定位到具体的web站点,右键点击选择“属性”,在“主目录”选项卡下取消对“记录访问”的勾选即可。(图4) 4、对访问流量进行限制 默认情况下IIS 6.0对于访问量是没有限制的,如果并发连接过大超过了Web的负载轻则发生网络拥塞,重则导致服务器宕机。因此需要对用户的访问进行限制,控制Web访问的流量。 打开“Internet信息服务”管理器,在其窗口右侧点击主机名前面的“+”号,依次定位到某个Web站点上。选中该Web站点右键单击选择 “属性”,在打开的属性设置窗口中选中“性能”标签,将“启用带宽限制”复选框选中,在随后被激活的“最大网络使用”设置框中,指定你的网络站点带宽的具体数值。大家可以根据服务器的性能及其访问量综合考虑继续设置。对于一般的企业站点将带宽流量设置为1500kb/s就差不多了。同时在“网站连接”下可以进行连接限制的设置,大家可以根据情况设置一个数值。完成以上设置后,IIS就只能使用其被授予的资源进行Web服务,杜绝了异常情况造成的服务器过载,为Web减负。(图5) 5、让Web负载自由伸缩 默认情况下IIS是全负荷地为Web提供服务的,这在一定程度上加重了Web负担。如何能够自动地根据负载变化自动调节工作进程呢? 利用IIS 6.0的Web园,我们只需指定用于某个应用程序池的工作进程的数量就可以了实现各个Web站点之间的隔离。具体的配置步骤是:在“Internet信息服务”管理器中打开应用程序池的“属性”对话框,转到“性能”页,在“Web园”下面的“最大工作进程数”输入框中输入进程数量。当服务器的负载较小,不需要额外的工作进程时,IIS 6.0在一定的时间后(默认20分钟,可配置)自动缩减实际的工作进程数量;如果负载变大,需要额外的工作进程,IIS 6.0再次增加工作进程数量。另外,还可以“启用CUP监视”,设置“最大CPU使用率”,“刷新CUP使用率值”以及“CPU使用率超过最大使用率是执行的操作”,这些设置可以根据需要进行设置。当一切设置完成后这一切就交给IIS自动进行,不需要管理员干预。 (图6) 6、配置应用呈现池 IIS可以支持多个Web服务,特别是虚拟主机一台服务器上有非常多的Web站点。如何才能做到各个站点之间相互独立,不因某些Web站点出现故障而影响其他站点呢?为不同工作进程指定应用程序池是个很好的解决办法。 (1)、创建 打开“IIS 管理器”中,展开本地计算机,右键单击“应用程序池”,选择“新建→应用程序池”。在“应用程序池名称”框中,输入新的应用程序池名称。如果点选选“将现有应用程序池作为模板”,可以在“应用程序池名称”下来列表中选择相应的应用程序池,最后单击“确定”即可。 (图7) (2)、指派 在“IIS 管理器中”,右键单击你要为其指派应用程序池的站点然后单击“属性”。在该站点的属性面板中“主目录”选项卡,在“应用程序池”下拉列表中选择刚才创建的应用程序池即可。如果所有的选项为灰色,单击“创建”按钮就可以输入“应用程序名”,然后在“应用程序池”列表框中,选择并指派网站的应用程序池了。(图 8) (3)、回收 利用“回收”功能,可是设置如何恢复系统资源进行IIS资源使用的灵活定制。打开“IIS 管理控制台”,单击“+”号依次“展开本地计算机→应用程序池”。选择你要回收的应用程序池右键单击选择“属性”,出现应用程序池的属性对话框,单击“回收”选项卡在其下可以设置“进程回收”、“内存回收”等,所有这些设置大家根据实际需要进行设置。(图9) 总结:通过上述IIS优化措施,Web服务器就能轻装上阵其性能将会有较大的提升。当然,要从根本上改善Web性能,仅仅进行软设置是不够的。另外,还需要进行硬件改造,软硬结合才是最完美的解决方案。 管理互联网信息服务器(Internet Information Server,IIS)大家都知道,它是一个既简单而又麻烦的东西,简单的是安装它几乎不需要费什么脑筋,选择一下路径,然后一路按“下一步”就可以完成;配置也比较简单,只要有一定的NT和网络知识,照着说明书就可以架设一个像模像样的Web站点出来。然而管理IIS却没有想像的那样简单。使用一段时间以后,管理员往往会遇上服务器性能不良的情况。这时候,IIS的性能优化,就尤为重要了。 导致IIS服务性能不良的原因有两个方面。一个是人为的,也就是说管理员在安装、配置IIS的时候没有进行优化或者配置错误。另一个则是客观上的,随着运行的服务种类,以及访问人数的增加,服务器原有的硬件配置已不能满足要求了,这就需要提高硬件配置。 在服务器配置上优化IIS性能 1.IIS高速缓存是对IIS进行优化时要考虑的最重要的项目之一。服务器保留了一部分内存空间用作IIS高速缓存,为将来的请求存储对象,这样IIS就可从高速缓存中检索对象而不用从硬盘中检索。 调整IIS高速缓存的容量需要修改注册表,表项如下: \HKEY_LOCAL_MACHINE \System \CurrentControlSet \Services \InetInfo \Parameters \MemoryCacheSize MemoryCacheSize的范围是从0道4GB,缺省值为3072000(3MB)。 IIS通过高速缓存系统句柄、目录列表以及其他常用数据的值来提高系统的性能。这个参数指明了分配给高速缓存的内存大小。如果该值为0,那就意味着 “不进行任何高速缓存”。在这种情况下系统的性能可能会降低。如果你的服务器网络通讯繁忙,并且有足够的内存空间,可以考虑增大该值。必须注意的是修改注册表后,需要重新启动才能使新值生效。 2.使IIS使用处理器时间最长。服务器的CPU处理器能力总是有限的。哪一个应用程序占用处理器的时间最长,谁的性能就能得到最大的提高。 (1)在NT的控制面板中,双击系统图标。 (2)单击性能标签。 (3)在应用程序性能下将游标拖到None的位置,这样就可以使所有正在运行的服务,包括IIS,使用处理器的时间达到最大值。 3.服务器属性设置。在服务器属性里有一项可以使网络应用程序的总处理能力最大的选项,你当然应该选择它。 (1)在桌面上右键单击网络邻居图标,然后选择属性选项。 (2)单击“服务标签”。 (3)单击“服务器”,然后按“属性”。 (4)选择最大化网络应用程序的总处理能力。然后单击“OK。” 提高硬件配置来优化IIS性能 […]
View DetailsLINQ&EF任我行(二)--LinQ to Object (转)
LinQ to Objects是LinQ家庭的核心,其它的LinQ也使用了与LinQ to Objects相同的查询句法。最终编译器都是把LinQ句法翻译成扩展方法的链式表达式,同时把扩展方法中的lambda表达式转换成匿名类中的匿名方法,然后再把查询表达式编译成MSIL。 LinQ to SQL、LinQ to DataSets、LinQ to Entities和LinQ to XML则不是把查询表达式转换成MSIL,而是把查询表达式树转换成相应的特定查询语言。LinQ to SQL会生成T-SQL,LinQ to Entities会生成eSQL,LinQ to XML会生成XPath语句等。 LinQ标准查询操作符列表 《图1》 在VS2008及以后的版本中提供了LinQ的查询样例程序。 \Programe Files\Microsoft Visual Studio 2008(10.0 VS2010)\Samples\1033文件夹下有个压缩包CSharpSamples.zip,解压它,继续打开其中的文件夹 .\LinqSamples\SampleQueries\SampleQueries.sln,打开此解决方案,运行该项目,界面如下 《图2》 在左边选择示例,右侧上方会出现相应的LinQ代码,右侧下方会出现代码的运行结果。通过这个样例程序,我们可以学习LinQ的各种用法。 下面我们来学习LinQ常用操作符 一、筛选操作符Where 根据谓词对源序列的内容进行筛选,类似于SQL中的where子句。 1.简单where表达式 使用扩展方法 var query1 = CustomerList.Where(c => c.Country == “USA”); 使用查询表达式语法 query1 = from c in CustomerList where c.Country == “USA” select c; 使用扩展方法需要向where方法中传入lambda表达式。 2.复合where表达式 所谓的复合where表达式就是使用&&或||操作符对数据进行筛选 使用扩展方法 var query2 = CustomerList.Where(c => c.Country == “USA” && c.Orders.Any()); 使用查询表达式语法 query2 = from c in CustomerList where c.Country == “USA” […]
View DetailsCSS3属性之二:box-shadow
语法: box-shadow:<length> <length> <length> <length> || <color> 取值: <length> <length> <length>? <length>? || <color>: 阴影水平偏移值(可取正负值);阴影垂直偏移值(可取正负值);阴影模糊值;阴影颜色 说明: 设置块阴影 box-shadow这个属性应用的非常普遍,可以使你的元素立刻变得漂亮起来,只是记得不要把值设得太离谱。 box-shadow的四个参数: x-offset x轴偏移 y-offset y轴偏移 blur 模糊值 color of shadow 阴影颜色 下面来看一个例子,代码如下:
1 |
<div><span style="COLOR: #0000ff"><!</span><span style="COLOR: #ff00ff">DOCTYPE html</span><span style="COLOR: #0000ff">></span><br /><span style="COLOR: #0000ff"><</span><span style="COLOR: #800000">html</span><span style="COLOR: #0000ff">></span><br /><span style="COLOR: #0000ff"><</span><span style="COLOR: #800000">head</span><span style="COLOR: #0000ff">></span><br /><span style="COLOR: #0000ff"><</span><span style="COLOR: #800000">title</span><span style="COLOR: #0000ff">>盒子阴影</</span><span style="COLOR: #800000">title</span><span style="COLOR: #0000ff">></span><br /><span style="COLOR: #0000ff"><</span><span style="COLOR: #800000">meta </span><span style="COLOR: #ff0000">charset</span><span style="COLOR: #0000ff">="utf-8"</span><span style="COLOR: #ff0000"> </span><span style="COLOR: #0000ff">/></span><br /><span style="COLOR: #0000ff"><</span><span style="COLOR: #800000">style</span><span style="COLOR: #0000ff">></span><span style="BACKGROUND-COLOR: #f5f5f5; COLOR: #800000"><br />.box </span><span style="background-color: rgb(245, 245, 245); ">{</span><span style="BACKGROUND-COLOR: #f5f5f5; COLOR: #ff0000"><br /> width</span><span style="background-color: rgb(245, 245, 245); ">:</span><span style="BACKGROUND-COLOR: #f5f5f5; COLOR: #0000ff">300px</span><span style="background-color: rgb(245, 245, 245); ">;</span><span style="BACKGROUND-COLOR: #f5f5f5; COLOR: #ff0000"><br /> height</span><span style="background-color: rgb(245, 245, 245); ">:</span><span style="BACKGROUND-COLOR: #f5f5f5; COLOR: #0000ff">300px</span><span style="background-color: rgb(245, 245, 245); ">;</span><span style="BACKGROUND-COLOR: #f5f5f5; COLOR: #ff0000"><br /> background-color</span><span style="background-color: rgb(245, 245, 245); ">:</span><span style="BACKGROUND-COLOR: #f5f5f5; COLOR: #0000ff">#fff</span><span style="background-color: rgb(245, 245, 245); ">;</span><span style="BACKGROUND-COLOR: #f5f5f5; COLOR: #ff0000"><br /> <br /> </span><span style="BACKGROUND-COLOR: #f5f5f5; COLOR: #008000">/*</span><span style="BACKGROUND-COLOR: #f5f5f5; COLOR: #008000"> 设置阴影 </span><span style="BACKGROUND-COLOR: #f5f5f5; COLOR: #008000">*/</span><span style="BACKGROUND-COLOR: #f5f5f5; COLOR: #ff0000"><br /> -webkit-box-shadow</span><span style="background-color: rgb(245, 245, 245); ">:</span><span style="BACKGROUND-COLOR: #f5f5f5; COLOR: #0000ff">1px 1px 3px #292929</span><span style="background-color: rgb(245, 245, 245); ">;</span><span style="BACKGROUND-COLOR: #f5f5f5; COLOR: #ff0000"><br /> -moz-box-shadow</span><span style="background-color: rgb(245, 245, 245); ">:</span><span style="BACKGROUND-COLOR: #f5f5f5; COLOR: #0000ff">1px 1px 3px #292929</span><span style="background-color: rgb(245, 245, 245); ">;</span><span style="BACKGROUND-COLOR: #f5f5f5; COLOR: #ff0000"><br /> box-shadow</span><span style="background-color: rgb(245, 245, 245); ">:</span><span style="BACKGROUND-COLOR: #f5f5f5; COLOR: #0000ff">1px 1px 3px #292929</span><span style="background-color: rgb(245, 245, 245); ">;</span><span style="BACKGROUND-COLOR: #f5f5f5; COLOR: #ff0000"><br /></span><span style="background-color: rgb(245, 245, 245); ">}</span><span style="BACKGROUND-COLOR: #f5f5f5; COLOR: #800000"><br /></span><span style="COLOR: #0000ff"></</span><span style="COLOR: #800000">style</span><span style="COLOR: #0000ff">></span><br /><span style="COLOR: #0000ff"></</span><span style="COLOR: #800000">head</span><span style="COLOR: #0000ff">></span><br /><span style="COLOR: #0000ff"><</span><span style="COLOR: #800000">body</span><span style="COLOR: #0000ff">></span><br /><span style="COLOR: #0000ff"><</span><span style="COLOR: #800000">div </span><span style="COLOR: #ff0000">class</span><span style="COLOR: #0000ff">="box"</span><span style="COLOR: #0000ff">></span><br /><span style="COLOR: #0000ff"><</span><span style="COLOR: #800000">br </span><span style="COLOR: #0000ff">/><</span><span style="COLOR: #800000">br </span><span style="COLOR: #0000ff">/><</span><span style="COLOR: #800000">br </span><span style="COLOR: #0000ff">/><</span><span style="COLOR: #800000">br </span><span style="COLOR: #0000ff">/></span><br />看,是不是很有立体感?没有设置边框啊。<br /><span style="COLOR: #0000ff"></</span><span style="COLOR: #800000">div</span><span style="COLOR: #0000ff">></span><br /><span style="COLOR: #0000ff"></</span><span style="COLOR: #800000">body</span><span style="COLOR: #0000ff">></span><br /><span style="COLOR: #0000ff"></</span><span style="COLOR: #800000">html</span><span style="COLOR: #0000ff">></span></div> |
运行效果如下(Chrome中): 还可以一次运用多个box-shadows,这样做会产生一些有趣的效果,看下面这个例子:
1 |
<div><span style="COLOR: #0000ff"><!</span><span style="COLOR: #ff00ff">DOCTYPE html</span><span style="COLOR: #0000ff">></span><br /><span style="COLOR: #0000ff"><</span><span style="COLOR: #800000">html</span><span style="COLOR: #0000ff">></span><br /><span style="COLOR: #0000ff"><</span><span style="COLOR: #800000">head</span><span style="COLOR: #0000ff">></span><br /><span style="COLOR: #0000ff"><</span><span style="COLOR: #800000">title</span><span style="COLOR: #0000ff">></</span><span style="COLOR: #800000">title</span><span style="COLOR: #0000ff">></span><br /><span style="COLOR: #0000ff"><</span><span style="COLOR: #800000">meta </span><span style="COLOR: #ff0000">charset</span><span style="COLOR: #0000ff">="utf-8"</span><span style="COLOR: #ff0000"> </span><span style="COLOR: #0000ff">/></span><br /><span style="COLOR: #0000ff"><</span><span style="COLOR: #800000">style</span><span style="COLOR: #0000ff">></span><span style="BACKGROUND-COLOR: #f5f5f5; COLOR: #800000"><br />.box </span><span style="background-color: rgb(245, 245, 245); ">{</span><span style="BACKGROUND-COLOR: #f5f5f5; COLOR: #ff0000"><br /> width</span><span style="background-color: rgb(245, 245, 245); ">:</span><span style="BACKGROUND-COLOR: #f5f5f5; COLOR: #0000ff">300px</span><span style="background-color: rgb(245, 245, 245); ">;</span><span style="BACKGROUND-COLOR: #f5f5f5; COLOR: #ff0000"><br /> height</span><span style="background-color: rgb(245, 245, 245); ">:</span><span style="BACKGROUND-COLOR: #f5f5f5; COLOR: #0000ff">300px</span><span style="background-color: rgb(245, 245, 245); ">;</span><span style="BACKGROUND-COLOR: #f5f5f5; COLOR: #ff0000"><br /> background-color</span><span style="background-color: rgb(245, 245, 245); ">:</span><span style="BACKGROUND-COLOR: #f5f5f5; COLOR: #0000ff">#fff</span><span style="background-color: rgb(245, 245, 245); ">;</span><span style="BACKGROUND-COLOR: #f5f5f5; COLOR: #ff0000"><br /> <br /> </span><span style="BACKGROUND-COLOR: #f5f5f5; COLOR: #008000">/*</span><span style="BACKGROUND-COLOR: #f5f5f5; COLOR: #008000"> 设置阴影 </span><span style="BACKGROUND-COLOR: #f5f5f5; COLOR: #008000">*/</span><span style="BACKGROUND-COLOR: #f5f5f5; COLOR: #ff0000"><br /> -webkit-box-shadow</span><span style="background-color: rgb(245, 245, 245); ">:</span><span style="BACKGROUND-COLOR: #f5f5f5; COLOR: #0000ff">1px 1px 3px green, -1px -1px 3px blue</span><span style="background-color: rgb(245, 245, 245); ">;</span><span style="BACKGROUND-COLOR: #f5f5f5; COLOR: #ff0000"><br /> -moz-box-shadow</span><span style="background-color: rgb(245, 245, 245); ">:</span><span style="BACKGROUND-COLOR: #f5f5f5; COLOR: #0000ff">1px 1px 3px green, -1px -1px 3px blue</span><span style="background-color: rgb(245, 245, 245); ">;</span><span style="BACKGROUND-COLOR: #f5f5f5; COLOR: #ff0000"><br /> box-shadow</span><span style="background-color: rgb(245, 245, 245); ">:</span><span style="BACKGROUND-COLOR: #f5f5f5; COLOR: #0000ff">1px 1px 3px green, -1px -1px 3px blue</span><span style="background-color: rgb(245, 245, 245); ">;</span><span style="BACKGROUND-COLOR: #f5f5f5; COLOR: #ff0000"><br /></span><span style="background-color: rgb(245, 245, 245); ">}</span><span style="BACKGROUND-COLOR: #f5f5f5; COLOR: #800000"><br /></span><span style="COLOR: #0000ff"></</span><span style="COLOR: #800000">style</span><span style="COLOR: #0000ff">></span><br /><span style="COLOR: #0000ff"></</span><span style="COLOR: #800000">head</span><span style="COLOR: #0000ff">></span><br /><span style="COLOR: #0000ff"><</span><span style="COLOR: #800000">body</span><span style="COLOR: #0000ff">></span><br /><span style="COLOR: #0000ff"><</span><span style="COLOR: #800000">div </span><span style="COLOR: #ff0000">class</span><span style="COLOR: #0000ff">="box"</span><span style="COLOR: #0000ff">></span><br /><span style="COLOR: #0000ff"><</span><span style="COLOR: #800000">br </span><span style="COLOR: #0000ff">/><</span><span style="COLOR: #800000">br </span><span style="COLOR: #0000ff">/><</span><span style="COLOR: #800000">br </span><span style="COLOR: #0000ff">/><</span><span style="COLOR: #800000">br </span><span style="COLOR: #0000ff">/></span><br />看,我有两个颜色的阴影!O(∩_∩)O哈!<br /><span style="COLOR: #0000ff"></</span><span style="COLOR: #800000">div</span><span style="COLOR: #0000ff">></span><br /><span style="COLOR: #0000ff"></</span><span style="COLOR: #800000">body</span><span style="COLOR: #0000ff">></span><br /><span style="COLOR: #0000ff"></</span><span style="COLOR: #800000">html</span><span style="COLOR: #0000ff">></span></div> |
运行效果如下(Chrome中): 可以看到,有两个颜色的阴影。 看下面一个例子:为下面这张图片添加阴影,让其有立体感:
1 |
<div><span style="COLOR: #0000ff"><!</span><span style="COLOR: #ff00ff">DOCTYPE html</span><span style="COLOR: #0000ff">></span><br /><span style="COLOR: #0000ff"><</span><span style="COLOR: #800000">html</span><span style="COLOR: #0000ff">></span><br /><span style="COLOR: #0000ff"><</span><span style="COLOR: #800000">head</span><span style="COLOR: #0000ff">></span><br /><span style="COLOR: #0000ff"><</span><span style="COLOR: #800000">title</span><span style="COLOR: #0000ff">></</span><span style="COLOR: #800000">title</span><span style="COLOR: #0000ff">></span><br /><span style="COLOR: #0000ff"><</span><span style="COLOR: #800000">meta </span><span style="COLOR: #ff0000">charset</span><span style="COLOR: #0000ff">="utf-8"</span><span style="COLOR: #ff0000"> </span><span style="COLOR: #0000ff">/></span><br /><span style="COLOR: #0000ff"><</span><span style="COLOR: #800000">style</span><span style="COLOR: #0000ff">></span><span style="BACKGROUND-COLOR: #f5f5f5; COLOR: #800000"><br />body </span><span style="background-color: rgb(245, 245, 245); ">{</span><span style="BACKGROUND-COLOR: #f5f5f5; COLOR: #ff0000"><br /> width</span><span style="background-color: rgb(245, 245, 245); ">:</span><span style="BACKGROUND-COLOR: #f5f5f5; COLOR: #0000ff">500px</span><span style="background-color: rgb(245, 245, 245); ">;</span><span style="BACKGROUND-COLOR: #f5f5f5; COLOR: #ff0000"><br /> margin</span><span style="background-color: rgb(245, 245, 245); ">:</span><span style="BACKGROUND-COLOR: #f5f5f5; COLOR: #0000ff">50px auto</span><span style="background-color: rgb(245, 245, 245); ">;</span><span style="BACKGROUND-COLOR: #f5f5f5; COLOR: #ff0000"><br /></span><span style="background-color: rgb(245, 245, 245); ">}</span><span style="BACKGROUND-COLOR: #f5f5f5; COLOR: #800000"><br />.box </span><span style="background-color: rgb(245, 245, 245); ">{</span><span style="BACKGROUND-COLOR: #f5f5f5; COLOR: #ff0000"><br /> position</span><span style="background-color: rgb(245, 245, 245); ">:</span><span style="BACKGROUND-COLOR: #f5f5f5; COLOR: #0000ff">relative</span><span style="background-color: rgb(245, 245, 245); ">;</span><span style="BACKGROUND-COLOR: #f5f5f5; COLOR: #ff0000"><br /> -webkit-box-shadow</span><span style="background-color: rgb(245, 245, 245); ">:</span><span style="BACKGROUND-COLOR: #f5f5f5; COLOR: #0000ff">1px 2px 4px rgba(0, 0, 0, 0.5)</span><span style="background-color: rgb(245, 245, 245); ">;</span><span style="BACKGROUND-COLOR: #f5f5f5; COLOR: #ff0000"><br /> -moz-box-shadow</span><span style="background-color: rgb(245, 245, 245); ">:</span><span style="BACKGROUND-COLOR: #f5f5f5; COLOR: #0000ff">1px 2px 4px rgba(0, 0, 0, 0.5)</span><span style="background-color: rgb(245, 245, 245); ">;</span><span style="BACKGROUND-COLOR: #f5f5f5; COLOR: #ff0000"><br /> box-shadow</span><span style="background-color: rgb(245, 245, 245); ">:</span><span style="BACKGROUND-COLOR: #f5f5f5; COLOR: #0000ff">1px 2px 4px rgba(0, 0, 0, 0.5)</span><span style="background-color: rgb(245, 245, 245); ">;</span><span style="BACKGROUND-COLOR: #f5f5f5; COLOR: #ff0000"><br /> padding</span><span style="background-color: rgb(245, 245, 245); ">:</span><span style="BACKGROUND-COLOR: #f5f5f5; COLOR: #0000ff">10px</span><span style="background-color: rgb(245, 245, 245); ">;</span><span style="BACKGROUND-COLOR: #f5f5f5; COLOR: #ff0000"><br /> background</span><span style="background-color: rgb(245, 245, 245); ">:</span><span style="BACKGROUND-COLOR: #f5f5f5; COLOR: #0000ff">#fff</span><span style="background-color: rgb(245, 245, 245); ">;</span><span style="BACKGROUND-COLOR: #f5f5f5; COLOR: #ff0000"><br /></span><span style="background-color: rgb(245, 245, 245); ">}</span><span style="BACKGROUND-COLOR: #f5f5f5; COLOR: #800000"><br />.box img </span><span style="background-color: rgb(245, 245, 245); ">{</span><span style="BACKGROUND-COLOR: #f5f5f5; COLOR: #ff0000"><br /> width</span><span style="background-color: rgb(245, 245, 245); ">:</span><span style="BACKGROUND-COLOR: #f5f5f5; COLOR: #0000ff">100%</span><span style="background-color: rgb(245, 245, 245); ">;</span><span style="BACKGROUND-COLOR: #f5f5f5; COLOR: #ff0000"><br /> border</span><span style="background-color: rgb(245, 245, 245); ">:</span><span style="BACKGROUND-COLOR: #f5f5f5; COLOR: #0000ff">1px solid #8a4419</span><span style="background-color: rgb(245, 245, 245); ">;</span><span style="BACKGROUND-COLOR: #f5f5f5; COLOR: #ff0000"><br /> border-style</span><span style="background-color: rgb(245, 245, 245); ">:</span><span style="BACKGROUND-COLOR: #f5f5f5; COLOR: #0000ff">inset</span><span style="background-color: rgb(245, 245, 245); ">;</span><span style="BACKGROUND-COLOR: #f5f5f5; COLOR: #ff0000"><br /></span><span style="background-color: rgb(245, 245, 245); ">}</span><span style="BACKGROUND-COLOR: #f5f5f5; COLOR: #800000"><br />.box:after </span><span style="background-color: rgb(245, 245, 245); ">{</span><span style="BACKGROUND-COLOR: #f5f5f5; COLOR: #ff0000"><br /> content</span><span style="background-color: rgb(245, 245, 245); ">:</span><span style="BACKGROUND-COLOR: #f5f5f5; COLOR: #0000ff">''</span><span style="background-color: rgb(245, 245, 245); ">;</span><span style="BACKGROUND-COLOR: #f5f5f5; COLOR: #ff0000"><br /> position</span><span style="background-color: rgb(245, 245, 245); ">:</span><span style="BACKGROUND-COLOR: #f5f5f5; COLOR: #0000ff">absolute</span><span style="background-color: rgb(245, 245, 245); ">;</span><span style="BACKGROUND-COLOR: #f5f5f5; COLOR: #ff0000"><br /> z-index</span><span style="background-color: rgb(245, 245, 245); ">:</span><span style="BACKGROUND-COLOR: #f5f5f5; COLOR: #0000ff">-1</span><span style="background-color: rgb(245, 245, 245); ">;</span><span style="BACKGROUND-COLOR: #f5f5f5; COLOR: #ff0000"><br /> <br /> </span><span style="BACKGROUND-COLOR: #f5f5f5; COLOR: #008000">/*</span><span style="BACKGROUND-COLOR: #f5f5f5; COLOR: #008000"> 阴影部分 </span><span style="BACKGROUND-COLOR: #f5f5f5; COLOR: #008000">*/</span><span style="BACKGROUND-COLOR: #f5f5f5; COLOR: #ff0000"><br /> -webkit-box-shadow</span><span style="background-color: rgb(245, 245, 245); ">:</span><span style="BACKGROUND-COLOR: #f5f5f5; COLOR: #0000ff">0 15px 20px rgba(0, 0, 0, 0.3)</span><span style="background-color: rgb(245, 245, 245); ">;</span><span style="BACKGROUND-COLOR: #f5f5f5; COLOR: #ff0000"><br /> -moz-box-shadow</span><span style="background-color: rgb(245, 245, 245); ">:</span><span style="BACKGROUND-COLOR: #f5f5f5; COLOR: #0000ff">0 15px 20px rgba(0, 0, 0, 0.3)</span><span style="background-color: rgb(245, 245, 245); ">;</span><span style="BACKGROUND-COLOR: #f5f5f5; COLOR: #ff0000"><br /> box-shadow</span><span style="background-color: rgb(245, 245, 245); ">:</span><span style="BACKGROUND-COLOR: #f5f5f5; COLOR: #0000ff">0 15px 20px rgba(0, 0, 0, 0.3)</span><span style="background-color: rgb(245, 245, 245); ">;</span><span style="BACKGROUND-COLOR: #f5f5f5; COLOR: #ff0000"><br /> <br /> width</span><span style="background-color: rgb(245, 245, 245); ">:</span><span style="BACKGROUND-COLOR: #f5f5f5; COLOR: #0000ff">70%</span><span style="background-color: rgb(245, 245, 245); ">;</span><span style="BACKGROUND-COLOR: #f5f5f5; COLOR: #ff0000"><br /> left</span><span style="background-color: rgb(245, 245, 245); ">:</span><span style="BACKGROUND-COLOR: #f5f5f5; COLOR: #0000ff">15%</span><span style="background-color: rgb(245, 245, 245); ">;</span><span style="BACKGROUND-COLOR: #f5f5f5; COLOR: #ff0000"><br /> height</span><span style="background-color: rgb(245, 245, 245); ">:</span><span style="BACKGROUND-COLOR: #f5f5f5; COLOR: #0000ff">100px</span><span style="background-color: rgb(245, 245, 245); ">;</span><span style="BACKGROUND-COLOR: #f5f5f5; COLOR: #ff0000"><br /> bottom</span><span style="background-color: rgb(245, 245, 245); ">:</span><span style="BACKGROUND-COLOR: #f5f5f5; COLOR: #0000ff">0</span><span style="background-color: rgb(245, 245, 245); ">;</span><span style="BACKGROUND-COLOR: #f5f5f5; COLOR: #ff0000"><br /></span><span style="background-color: rgb(245, 245, 245); ">}</span><span style="BACKGROUND-COLOR: #f5f5f5; COLOR: #800000"><br /></span><span style="COLOR: #0000ff"></</span><span style="COLOR: #800000">style</span><span style="COLOR: #0000ff">></span><br /><span style="COLOR: #0000ff"></</span><span style="COLOR: #800000">head</span><span style="COLOR: #0000ff">></span><br /><span style="COLOR: #0000ff"><</span><span style="COLOR: #800000">body</span><span style="COLOR: #0000ff">></span><br /><span style="COLOR: #0000ff"><</span><span style="COLOR: #800000">div </span><span style="COLOR: #ff0000">class</span><span style="COLOR: #0000ff">="box"</span><span style="COLOR: #0000ff">></span><br /> <span style="COLOR: #0000ff"><</span><span style="COLOR: #800000">img </span><span style="COLOR: #ff0000">src</span><span style="COLOR: #0000ff">="allstar.jpg"</span><span style="COLOR: #ff0000"> title</span><span style="COLOR: #0000ff">="球星云集"</span><span style="COLOR: #ff0000"> </span><span style="COLOR: #0000ff">/></span><br /><span style="COLOR: #0000ff"></</span><span style="COLOR: #800000">div</span><span style="COLOR: #0000ff">></span><br /><span style="COLOR: #0000ff"></</span><span style="COLOR: #800000">body</span><span style="COLOR: #0000ff">></span><br /><span style="COLOR: #0000ff"></</span><span style="COLOR: #800000">html</span><span style="COLOR: #0000ff">></span></div> |
运行效果如下(Chrome中): 以前我吗需要在photoshop中把图片做成这样的效果,现在可以直接用CSS代码来实现了。 转自:http://www.cnblogs.com/lianjun/archive/2011/03/14/1983465.html
View DetailsASP内置对象 Request对象
集合 Request.ClientCertificate(key[SubField])所有客户证书的信息的集合。对于Key,该集合具有如下的关键字: Subject证书的主题。包含所有关于证书收据的信息。能和所有的子域后缀一起使用。 Issuer证书的发行人。包含所有关于证书验证的信息。除了CN外,能和所有的子域后缀一起使用。 VadidFrom证书发行的日期。使用VBScript格式。 ValidUntil该证书不在有效的时间。 SerialNumber包含该证书的序列号。 Certificate包含整个证书内容的二进制流,使用ASN.1格式。 对于SubField,Subject和Issuer关键字可以具有如下的子域后缀:(比如:SubjectOU或IssuerL) C起源国家。 O公司或组织名称。 OU组织单元。 CN用户的常规名称。 L局部。 S州(或省)。 T个人或公司的标题。 GN给定名称。 I初始。 当文件cervbs.inc(VBScript使用)或cerjavas.inc(Jscript使用)通过使用#INCLUDE导向包含在你的Active Server Page里时,下面两个标志可以使用: ceCertPresent指明客户证书是否存在,其值为TRUE或FALSE。 ceUnrecongnizedIssure指明在该链表中的最后的证书的发行者是否未知,其值为TRUE或FALSE。 Request.Cookies(Cookie[(key).Attribute]) Cookie的集合。允许获得浏览器的Cookie。Cookie指明返回那一个Cookie。Key用于从Cookie字典中返回具有某一关键字的Cookie值。对于Attribute,你能使用属性HasKeys来确定某一Cookie是否具有子关键字。HasKeys的值为TRUE或FALSE。 Request.Form(Parameter)[(Index).Count] 填写在HTML的表单中所有的数据的集合。Parameter是在HTML表单中某一元素的名称。当某一参数具有不止一个值(比如,当在<SELECT>中使用MULTIPLE属性时)时,使用Index。当某一参数具有多值时,Count指明多值个数。 Request.QueryString(Varible)[(Index).Count] 查询字符串的所有值的集合。Varible是在查询字符串某一变量的名称。当某一变量具有多于一个值时,使用Index。当某一参数具有多值时,Count指明值的个数。 Request.ServerVaribles(Server Environment Variable) 环境变量的集合。允许读取HTTP头。你可以通过使用HTTP_前缀来读取任何头信息。比如,HTTP_USER_AGENT接受客户代理HTTP头(浏览器类型)。除此外,你可以使用下表所示的变量获得任何环境信息。 ALL_HTTP客户端发送的所有HTTP标头,他的结果都有前缀HTTP_。 ALL_RAW客户端发送的所有HTTP标头,其结果和客户端发送时一样,没有前缀HTTP_ APPL_MD_PATH应用程序的元数据库路径。 APPL_PHYSICAL_PATH与应用程序元数据库路径相应的物理路径。 AUTH_PASSWORD当使用基本验证模式时,客户在密码对话框中输入的密码。 AUTH_TYPE这是用户访问受保护的脚本时,服务器用于检验用户的验证方法。 AUTH_USER代验证的用户名。 CERT_COOKIE唯一的客户证书ID号。 CERT_FLAG客户证书标志,如有客户端证书,则bit0为0。如果客户端证书验证无效,bit1被设置为1。 CERT_ISSUER用户证书中的发行者字段。 CERT_KEYSIZE安全套接字层连接关键字的位数,如128。 CERT_SECRETKEYSIZE服务器验证私人关键字的位数。如1024。 CERT_SERIALNUMBER客户证书的序列号字段。 CERT_SERVER_ISSUER服务器证书的发行者字段 CERT_SERVER_SUBJECT服务器证书的主题字段。 CERT_SUBJECT客户端证书的主题字段。 CONTENT_LENGTH客户端发出内容的长度。 CONTENT_TYPE客户发送的form内容或HTTP PUT的数据类型。 GATEWAY_INTERFACE服务器使用的网关界面。 HTTPS如果请求穿过安全通道(SSL),则返回ON。如果请求来自非安全通道,则返回OFF。 HTTPS_KEYSIZE安全套接字层连接关键字的位数,如128。 HTTPS_SECRETKEYSIZE服务器验证私人关键字的位数。如1024。 HTTPS_SERVER_ISSUER服务器证书的发行者字段。 HTTPS_SERVER_SUBJECT服务器证书的主题字段。 INSTANCE_IDIIS实例的ID号。 INSTANCE_META_PATH响应请求的IIS实例的元数据库路径。 LOCAL_ADDR返回接受请求的服务器地址。 LOGON_USER用户登录Windows NT的帐号 PATH_INFO客户端提供的路径信息。 PATH_TRANSLATED通过由虚拟至物理的映射后得到的路径。 QUERY_STRING查询字符串内容。 REMOTE_ADDR发出请求的远程主机的IP地址。 REMOTE_HOST发出请求的远程主机名称。 REQUEST_METHOD提出请求的方法。比如GET、HEAD、POST等等。 SCRIPT_NAME执行脚本的名称。 SERVER_NAME服务器的主机名、DNS地址或IP地址。 SERVER_PORT接受请求的服务器端口号。 SERVER_PORT_SECURE如果接受请求的服务器端口为安全端口时,则为1,否则为0。 SERVER_PROTOCOL服务器使用的协议的名称和版本。 SERVER_SOFTWARE应答请求并运行网关的服务器软件的名称和版本。 URL提供URL的基本部分。 方法 Request.BinaryRead(Count) 接收一个HTML表单的未经过处理的内容。当调用此方法时,Count指明要接收多少字节。在调用此方法后,Count指明实际上接收到多少个字节。 属性 Request.TotalBytes 查询体的长度,以字节为单位。
View Detailsmeta大全
一、HTTP-EQUIV HTTP-EQUIV类似于HTTP的头部协议,它回应给浏览器一些有用的信息,以帮助正确和精确地显示网页内容。常用的HTTP-EQUIV类型有: 1、Content-Type和Content-Language (显示字符集的设定) 用法:<Meta http-equiv="Content-Type" Content="text/html; Charset=gb2312">或<Meta http-equiv="Content-Language" Content="zh-CN"> 设定页面使用的字符集,用以说明主页制作所使用的文字或语言,浏览器会根据此来调用相应的字符集显示页面内容。简体中文一般为GB2132,繁体中文为BIG5,日文的字符集是iso-2022-jp,韩文的是ks_c_5601等。 2、Refresh (刷新) 用法:<Meta http-equiv="Refresh" Content="30">或<Meta http-equiv="Refresh" Content="5; Url=http://www.bazhan.net"> 让网页多少秒刷新自己,或在多少秒后让网页自动链接到其它网页。 3、Expires (期限) 用法:<Meta http-equiv="Expires" Content="0">或<Meta http-equiv="Expires" Content="Wed, 26 Feb 1997 08:21:57 GMT"> 指定网页在缓存中的过期时间,一旦网页过期,必须到服务器上重新调阅。注意:必须使用GMT的时间格式。 4、Pragma (cach模式) 用法:<Meta http-equiv="Pragma" Content="No-cach"> 网页不保存在缓存中,每次访问都刷新页面。这样设定,访问者将无法脱机浏览。 5、Set-Cookie (cookie设定) <Meta http-equiv="Set-Cookie" Content="cookievalue=xxx; expires=Wednesday,21-Oct-98 16:14:21 GMT; path=/"> 浏览器访问某个页面时会将它存在缓存中,下次再次访问时就可从缓存中读取,以提高速度。当你希望访问者每次都刷新你广告的图标,或每次都刷新你的计数器,就要禁用缓存了。通常HTML文件没有必要禁用缓存,对于ASP等页面,就可以使用禁用缓存,因为每次看到的页面都是在服务器动态生成的,缓存就失去意义。如果网页过期,那么存盘的cookie将被删除。必须使用GMT的时间格式。 6、Window-target (显示窗口的设定) 用法:<Meta http-equiv="Widow-target" Content="_top"> 强制页面在当前窗口以独立页面显示。这个属性是用来防止别人在框架里调用你的页面。Content选项:_blank、_top、_self、_parent。 7、Pics-label (网页RSAC等级评定) 用法:<META http-equiv="Pics-label" Contect="(PICS-1.1’http://www.bazhan.net' I gen comment 'RSACi North America […]
View Details清除页面缓存
当使用ASP进行Web编程时,你发现确实修改了程序代码,确认没有改错,却发现输出的Webyemi8an没有变化,这就是服务端将此ASP文件加入了页面缓存。 清楚页面缓存有一下几种方法; 1.在ASP页面首部加入一下代码: Response.Buffer=True Response.ExpiresAbsolute=Now()-1 Response.Expires=0 Response.CacheControl=“no-cache” Response.AddHeader “Pragma”,“no-Cache” 2.在HTML代码中加入下面的代码,不过这些代码似乎不能解决刷新无效的问题,因为这些代码只是针对客户端的页面缓存而已,只具有清楚客户端的页面缓存的功能。 <HEAD> <META HTTP-EQUIV="Pragma" CONTENT="no-cache"> <META HTTP-EQUIV="Cache-Control" CONTENT="no-cache"> <META HTTP-EQUIV="Expires" CONTENT="no-cache"> </HEAD> 3.如果一个ASP文件是url.asp,那么在访问的时候,脚本链接应该为: <input type="button" onclick="window.location.href=’url.asp?’+Math.random()" value="提交"/>
View DetailsScriptManager.RegisterStartupScript失效的解决方案
今天在项目中一个页面使用 System.Web.UI.ScriptManager.RegisterStartupScript(this, GetType(), "js", "alert('OK');", true);的时候发现没用,检查发现脚本没用注册到页面, check页面发现了问题,<form method="post"> 没用ruanat,更详细的信息请参看MSDN关于这个方法参数的介绍
View Details