﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>博客园-lion</title><link>http://www.cnblogs.com/lion.net/</link><description>我一直以为悲伤是一种美丽，一种壮丽，这世界让我如此失望，我经不起这风吹雨打的折磨，我寻找的是悲惨的结局，我追寻的是哭里的笑声，默默地完成生命的剩余……如果有来生，我不会选择以悲伤为开始，我会选择以美丽为结局......</description><language>zh-cn</language><lastBuildDate>Tue, 09 Feb 2010 22:07:43 GMT</lastBuildDate><pubDate>Tue, 09 Feb 2010 22:07:43 GMT</pubDate><ttl>60</ttl><item><title>Windows下快速复制文件工具Robocopy介绍</title><link>http://www.cnblogs.com/lion.net/archive/2009/08/15/1546907.html</link><dc:creator>Lion</dc:creator><author>Lion</author><pubDate>Sat, 15 Aug 2009 12:36:00 GMT</pubDate><guid>http://www.cnblogs.com/lion.net/archive/2009/08/15/1546907.html</guid><description><![CDATA[<p>阅读: 2078 评论: 14 作者: <a href="http://www.cnblogs.com/lion.net/" target="_blank">Lion</a> 发表于 2009-08-15 20:36 <a href="http://www.cnblogs.com/lion.net/archive/2009/08/15/1546907.html" target="_blank">原文链接</a></p>下图是我使用Robocopy复制文件的输出日志，可以看出效率是非常不错的，复制59.2G文件2729个文件152个文件夹，只用27分59秒<br />
<a target="_blank" href="http://idoall.org/space.php?uid=1&amp;do=album&amp;picid=31"><img alt="" src="http://idoall.org/attachment/200908/15/1_1250339122c66s.jpg" height="189" width="628" /></a><br />
<p><br />
</p>
<p><a href="http://idoall.org/link.php?url=http://download.microsoft.com%2Fdownload%2F8%2Fe%2Fc%2F8ec3a7d8-05b4-440a-a71e-ca3ee25fe057%2Frktools.exe">Robocopy</a>是<font size="3"><span lang="EN-US"><font face="Calibri">windows server 2003 resource kit</font></span><span style="font-family: 宋体;">工具箱中的一个工具，需要下载</span></font><font size="3"><span lang="EN-US"><font face="Calibri">windows server 2003 resource kit</font></span><span style="font-family: 宋体;">才可使用。<br />
<br />
将</span></font><font size="3"><span style="font-family: 宋体;">z:\_My_Media下面的文件移动到</span></font><font size="3"><span style="font-family: 宋体;">x:\_my_Mdeia目录下</span></font><br />
<font size="3"><span style="font-family: 宋体;">Robocopy z:\_My_Media x:\_my_Mdeia /move /e<br />
<br />
不复制*.bak文件<br />
</span></font><font size="3"><span style="font-family: 宋体;">Robocopy z:\_My_Media x:\_my_Mdeia /e</span></font> /xf *.bak<br />
<br />
不复制大于100MB的文件，单位是Byte<br />
<font size="3"><span style="font-family: 宋体;">Robocopy z:\_My_Media x:\_my_Mdeia /e /max:100000</span></font><br />
<br />
复制7天内除今天外被修改过的文件<br />
<font size="3"><span style="font-family: 宋体;">Robocopy z:\_My_Media x:\_my_Mdeia /s /maxage:7 /minage:1</span></font><br />
<br />
rh表示24小时制，下面命令表示，早上七点至晚上五点，参数范围从0000到2359<br />
<font size="3"><span style="font-family: 宋体;">Robocopy z:\_My_Media x:\_my_Mdeia /e /rh:1000-1700</span></font><br />
</p>
<p><br />
</p>
<p>&nbsp;</p>
关于Robocopy更多命令选项：<br />
<br />
使用格式：ROBOCOPY source destination [file [file]...] [options]<br />
<br />
源:: 源目录(驱动器:\路径或\服务器\共享\路径）。<br />
目录:: 目标目录(驱动器:\路径或\服务器\共享\路径）。<br />
文件:: 要复制的文件(名称/通配符: 默认为 "*.*"）。<br />
<br />
<br />
一、 复制选项:<br />
参数解释：<br />
/S :: 复制子目录，但不复制空的子目录。<br />
/E :: 复制子目录，包括空的子目录。<br />
/LEV:n :: 仅复制源目录树的前 n 层。<br />
/Z :: 在可重新启动模式下复制文件。<br />
/B :: 在备份模式下复制文件。<br />
/ZB :: 使用可重新启动模式；如果拒绝访问，请使用备份模式。<br />
/EFSRAW :: 在 EFS RAW 模式下复制所有加密的文件。<br />
/COPY:复制标记:: 要复制的文件内容(默认为/COPY:DAT）。<br />
（复制标记: D=数据，A=属性，T=时间戳）。<br />
（S=安全=NTFS ACL，O=所有者信息，U=审核信息）。<br />
/DCOPY:T :: 复制目录时间戳。<br />
/SEC :: 复制具有安全性的文件(等同于/COPY:DATS）。<br />
/COPYALL :: 复制所有文件信息(等同于/COPY:DATSOU）。<br />
/NOCOPY :: 不复制任何文件信息(与/PURGE 一起使用生效）。<br />
/SECFIX :: 修复所有文件的文件安全性，即使是跳过的文件。<br />
/TIMFIX :: 修复所有文件的文件时间，即使是跳过的文件。<br />
/PURGE :: 删除源中不再存在的目标文件/目录。<br />
/MIR :: 镜像目录树(等同于/E 和/PURGE）。<br />
/MOV :: 移动文件(复制后从源中删除）。<br />
/MOVE :: 移动文件和目录(复制后从源中删除）。<br />
/A+:[RASHCNET] :: 将给定的属性添加到复制文件。<br />
/A-:[RASHCNET] :: 从复制文件中删除给定的属性。<br />
/CREATE :: 仅创建目录树和长度为零的文件。<br />
/FAT :: 仅使用 8.3 FAT 文件名创建目标文件。<br />
/256 :: 关闭超长路径(&gt; 256 字符）支持。<br />
/MON:n :: 监视源；发现多于 n 个更改时再次运行。<br />
/MOT:m :: 监视源；如果更改，在 m 分钟时间内再次运行。<br />
/RH:hhmm-hhmm :: 运行小时数 - 可以启动新副本的时间。<br />
/PF :: 以每个文件(而不是每个步骤）为基础检查运行小时数。<br />
/IPG:n :: 程序包间的间距(ms），以释放低速线路上的带宽。<br />
<br />
二、文件选择选项:<br />
参数解释：<br />
/A :: 仅复制具有存档属性集的文件。<br />
/M :: 仅复制具有存档属性的文件并重置存档属性。<br />
/IA:[RASHCNETO] :: 仅包含具有任意给定属性集的文件。<br />
/XA:[RASHCNETO] :: 排除具有任意给定属性集的文件。<br />
/XF 文件[文件]... :: 排除与给定名称/路径/通配符匹配的文件。<br />
/XD 目录[目录]... :: 排除与给定名称/路径匹配的目录。<br />
/XC :: 排除已更改的文件。<br />
/XN :: 排除较新的文件。<br />
/XO :: 排除较旧的文件。<br />
/XX :: 排除多余的文件和目录。<br />
/XL :: 排除孤立的文件和目录。<br />
/IS :: 包含相同文件。<br />
/IT :: 包含已调整的文件。<br />
/MAX:n :: 最大的文件大小 - 排除大于 n 字节的文件。<br />
/MIN:n :: 最小的文件大小 - 排除小于 n 字节的文件。<br />
/MAXAGE:n :: 最长的文件存在时间 - 排除早于 n 天/日期的文件。<br />
/MINAGE:n :: 最短的文件存在时间 - 排除晚于 n 天/日期的文件。<br />
/MAXLAD:n :: 最大的最后访问日期 - 排除自 n 以来未使用的文件。<br />
/MINLAD:n :: 最小的最后访问日期 - 排除自 n 以来使用的文件。<br />
(If n &lt; 1900 then n = n days, else n = YYYYMMDD date)。<br />
/XJ :: 排除接合点。(默认情况下通常包括)。<br />
/FFT :: 假设 FAT 文件时间(2 秒粒度)。<br />
/DST :: 弥补 1 小时的 DST 时间差。<br />
/XJD :: 排除目录的接合点。<br />
/XJF :: 排除文件的接合点。<br />
<br />
三、重试选项:<br />
参数解释：<br />
/R:n :: 失败副本的重试次数: 默认为 1 百万。<br />
/W:n :: 两次重试间的等待时间: 默认为 30 秒。<br />
/REG :: 将注册表中的 /R:n 和 /W:n 保存为默认设置。<br />
/TBD :: 等待定义共享名称(重试错误 67)。<br />
<br />
四、日志记录选项:<br />
参数解释：<br />
/L :: 仅列出 - 不复制、添加时间戳或删除任何文件。<br />
/X :: 报告所有多余的文件，而不只是选中的文件。<br />
/V :: 生成详细输出，同时显示跳过的文件。<br />
/TS :: 在输出中包含源文件的时间戳。<br />
/FP :: 在输出中包含文件的完整路径名称。<br />
/BYTES :: 以字节打印大小。<br />
/NS :: 无大小 - 不记录文件大小。<br />
/NC :: 无类别 - 不记录文件类别。<br />
/NFL :: 无文件列表 - 不记录文件名。<br />
/NDL :: 无目录列表 - 不记录目录名称。<br />
/NP :: 无进度 - 不显示已复制的百分比。<br />
/ETA :: 显示复制文件的预期到达时间。<br />
/LOG:文件:: 将状态输出到日志文件(覆盖现有日志)。<br />
/LOG+:文件:: 将状态输出到日志文件(附加到现有日志中)。<br />
/UNILOG:文件:: 以 UNICODE 方式将状态输出到日志文件(覆盖现有日志)。<br />
/UNILOG+:文件:: 以 UNICODE 方式将状态输出到日志文件(附加到现有日志中)。<br />
/TEE :: 输出到控制台窗口和日志文件。<br />
/NJH :: 没有作业标头。<br />
/NJS :: 没有作业摘要。<br />
/UNICODE :: 以 UNICODE 方式输出状态。<br />
<br />
五、 作业选项 :<br />
参数解释：<br />
/JOB:作业名称:: 从命名的作业文件中提取参数。<br />
/SAVE:作业名称:: 将参数保存到命名的作业文件<br />
/QUIT :: 处理命令行后退出(以查看参数)。<br />
/NOSD :: 未指定源目录。<br />
/NODD :: 未指定目标目录。<br />
/IF :: 包含以下文件。
<div id="blog_text" class="cnt">
<p><font size="2"><font face="宋体"></font></font></p>
</div>
<img src="http://www.cnblogs.com/lion.net/aggbug/1546907.html?type=1" width="1" height="1" alt=""/><p>评论: 14　<a href="http://www.cnblogs.com/lion.net/archive/2009/08/15/1546907.html#pagedcomment" target="_blank">查看评论</a>　<a href="http://www.cnblogs.com/lion.net/archive/2009/08/15/1546907.html#commentform" target="_blank">发表评论</a></p><hr/><p>最新新闻：<br/>· <a href="http://news.cnblogs.com/n/56793/" target="_blank">知名扩展 Firebug 的简化版登陆 Chrome</a><span style="color:gray">(2010-02-09 22:59)</span><br/>· <a href="http://news.cnblogs.com/n/56792/" target="_blank">Google 悄悄地启用 1e100.net，打枪地不要</a><span style="color:gray">(2010-02-09 22:57)</span><br/>· <a href="http://news.cnblogs.com/n/56791/" target="_blank">从 Google 代码库找到的好东西</a><span style="color:gray">(2010-02-09 22:46)</span><br/>· <a href="http://news.cnblogs.com/n/56789/" target="_blank">苹果在线商店临时关闭 或将推新Macbook</a><span style="color:gray">(2010-02-09 22:39)</span><br/>· <a href="http://news.cnblogs.com/n/56788/" target="_blank">豆瓣网推出豆瓣电台iPhone客户端</a><span style="color:gray">(2010-02-09 21:51)</span><br/></p><p>编辑推荐：<a href="http://news.cnblogs.com/n/56782/" target="_blank">2010年2月编程语言排行榜</a><br/></p><p>网站导航：<a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/" target="_blank">个人主页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/group/" target="_blank">小组</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://kb.cnblogs.com" target="_blank">知识库</a></p>]]></description></item><item><title>Red Hat Enterprise5 安装 cacti-0.8.7e/插件/模板的详细安装过程</title><link>http://www.cnblogs.com/lion.net/archive/2009/08/14/1546183.html</link><dc:creator>Lion</dc:creator><author>Lion</author><pubDate>Fri, 14 Aug 2009 06:44:00 GMT</pubDate><guid>http://www.cnblogs.com/lion.net/archive/2009/08/14/1546183.html</guid><description><![CDATA[<p>阅读: 2075 评论: 1 作者: <a href="http://www.cnblogs.com/lion.net/" target="_blank">Lion</a> 发表于 2009-08-14 14:44 <a href="http://www.cnblogs.com/lion.net/archive/2009/08/14/1546183.html" target="_blank">原文链接</a></p><div id="blog_article" class="article"> <div class="resizeimg"><span style="font-weight: bold;">目录：</span><br style="font-weight: bold;" /><span style="font-weight: bold;"> 　　一、什么是cacti？</span><br style="font-weight: bold;" /><span style="font-weight: bold;"> 　　二、cacti的官方网站在哪里？</span><br style="font-weight: bold;" /><span style="font-weight: bold;"> 　　三、在哪里下载？需要哪些组件的支持？</span><br style="font-weight: bold;" /><span style="font-weight: bold;"> 　　四、使用cacti需要什么知识？</span><br style="font-weight: bold;" /><span style="font-weight: bold;"> 　　五、如何安装cacti?</span><br style="font-weight: bold;" /><span style="font-weight: bold;"> 　　六、常见问题</span><br /> <br /> <strong>一、什么是Cacti？</strong><br /> 　　无论是稍有规模的<font face="Times New Roman, serif"><span lang="en">IT</span></font>公司还是大型的<font face="Times New Roman, serif"><span lang="en">ICP</span></font>、<font face="Times New Roman, serif"><span lang="en">ISP</span></font>，都需要面对一个问题，就是如何实现对网络和服务器的性能的实时监测。<br />　 　Cacti是一套基于PHP,MySQL,SNMP及RRDTool开发的网络流量监测图形分析工具。它通过snmpget来获取数据，使用 RRDtool绘画图形，能统计网络设备的流量、CPU、系统负载等参数，也可以自定义监测的指标。而且你完全可以不需要了解RRDtool复杂的参数。 它提供了非常强大的数据和用户管理功能，可以指定每一个用户能查看树状结构、host以及任何一张图，还可以与LDAP结合进行用户验证，同时也能自己增 加模板，功能非常强大完善，界面友好。虽然 MRTG 是一套非常好用的软件但是它毕竟是一套很旧的软件了，其作者在多年前已经开发出 RRDTool 代替该软件(<span style="font-weight: bold;"><a href="http://idoall.org/link.php?url=http://hi.baidu.com%2Fmyfreezone%2Fblog%2Fitem%2F7f00fd247d2411338744f9c3.html">RRDTool与MRTG对比</a></span>)， 现在已经发展的很成熟了，但由于 RRDTool 的指令非常复杂，对于使用者非常的麻烦，幸运的是有一套软件 Cacti 的发展就是基于让 RRDTool 使用者更方便使用该软件，除了基本的 Snmp 流量跟系统资讯监控外，Cacti 也可外挂 Scripts 及加上 Templates 来作出各式各样的监控图。<br /><p><img src="http://idoall.org/attachment/200908/14/1_1250227857S8P8.png"  alt="" /></p><br /> <strong>二、cacti的官方网站在哪里？</strong><br /> 　　<a href="http://idoall.org/link.php?url=http://www.cacti.net%2F">http://www.cacti.net</a><br /> <br /> <strong>三、在哪里下载？需要哪些组件的支持？</strong><br /> 　　cacti在<a href="http://idoall.org/link.php?url=http://www.cacti.net%2Fdownload_cacti.php">http://www.cacti.net/download_cacti.php</a>处可以下载，总体来说需要很多软件的需要：Mysql、PHP、Apache、Zlib、libpng、freetype、jpeg、fontconfig、libxml、rddtool、net-snmp，不过不用担心这些软件在下文中都提供了下载地址。<br /> <br /> <strong>四、使用cacti需要什么知识？</strong><br /> 　　需要具有一定的使用net-snmp和rrdtool的知识。如果要自定义监测的指标还需要一定的shell脚本或xml语言能力。如果你想帮助cacti的开发，则需要通晓php脚本。<br /> <br /> <strong>五、如何安装cacti?</strong><br /> 　　闲话少说，下面开始安装前的准备工作。所有的软件包都请下载到这里/usr/local/_temp，软件都安装在/usr/local目录下。<br /> 　　<strong><br /></strong>　　<strong>1)</strong><span style="font-weight: bold;">安装Mysql</span> (<a href="http://idoall.org/link.php?url=http://dev.mysql.com%252Fdownloads%252Fmysql%252F5.1.html%2523downloads">mysql-5.1.36-linux-i686-glibc23.tar.gz</a>)<br /> 　　如果已经安装了MySQL，先卸载以前安装的mysql包(<a href="http://idoall.org/link.php?url=http://idoall.org%2Fspace.php%253Fuid%253D1%2526amp%253Bdo%253Dblog%2526amp%253Bid%253D38">rpm更多命令</a>)<br /> <table style="border: 1px dotted #cccccc; table-layout: fixed;" align="center" border="0" cellpadding="6" cellspacing="0" width="95%"><tr><td style="word-wrap: break-word;" bgcolor="#f3f3f3"><span style="font-weight: bold; color: #990000;"></span># rpm -qa|grep -i mysql&nbsp; //查看已经安装的mysql相关包<br /># rpm -ev mysql&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //删除mysql<br /># rm -f /etc/my.cnf&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //删除/etc/my.cnf下面的MySQL配置文件避免影响新安装版本的启动。<br /># tar -zxvf mysql-5.1.36-linux-i686-glibc23.tar.gz&nbsp;&nbsp;&nbsp;&nbsp; //解压 Mysql 安装包<br /># cp -rf mysql-5.1.36-linux-i686-glibc23 /usr/local/&nbsp;&nbsp;&nbsp;&nbsp; //将目录复制到/usr/local下(<a href="http://idoall.org/link.php?url=http://idoall.org%2Fspace.php%253Fuid%253D1%2526amp%253Bdo%253Dblog%2526amp%253Bid%253D35">CP更多命令</a>&gt;)<br /># cd ..<br /># ln -s mysql-5.1.36-linux-i686-glibc23 /usr/local/mysql&nbsp;&nbsp;&nbsp;&nbsp; //建立符号链接(<a href="http://idoall.org/link.php?url=http://idoall.org%2Fspace.php%253Fuid%253D1%2526amp%253Bdo%253Dblog%2526amp%253Bid%253D34">ln的更多命令</a>)<br /># useradd mysql&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //添加mysql用户<br /># groupadd mysql&nbsp;&nbsp;&nbsp;&nbsp; //添加mysql用户组<br /># cp /usr/local/mysql/support-files/my-medium.cnf /etc/my.cnf&nbsp;&nbsp;&nbsp; //复制mysql配置文件<br /># /usr/local/mysql/bin/mysql_install_db --user=mysql&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //初始化授权表</td></tr></table> 　　修改mysql目录的所有权限，使mysql用户和组可以访问到相关的目录，并创建mysql执行文件的快捷方式。(<a href="http://idoall.org/link.php?url=http://idoall.org%2Fspace.php%253Fuid%253D1%2526amp%253Bdo%253Dblog%2526amp%253Bid%253D36">关于linux的文件夹作用</a>)<br /><table style="border: 1px dotted #cccccc; table-layout: fixed;" align="center" border="0" cellpadding="6" cellspacing="0" width="95%"><tr><td style="word-wrap: break-word;" bgcolor="#f3f3f3"><span style="font-weight: bold; color: #990000;"></span> # cd /usr/local<br /># chgrp -R mysql mysql-5.1.36-linux-i686-glibc23<br /># chgrp -R mysql mysql<br /># chown -R mysql mysql-5.1.36-linux-i686-glibc23/data<br /># chown -R mysql mysql/data<br /># ln &#8211;s /usr/local/mysql/bin/* /usr/local/bin/<br /># /usr/local/mysql/bin/mysqld_safe --user=mysql &amp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //安全启动mysql</td></tr></table>　　将 mysql 注册为 Linux 系统服务(<a href="http://idoall.org/link.php?url=http://idoall.org%2Fspace.php%253Fuid%253D1%2526amp%253Bdo%253Dblog%2526amp%253Bid%253D37">chkconfig的更多命令</a>)<br /><table style="border: 1px dotted #cccccc; table-layout: fixed;" align="center" border="0" cellpadding="6" cellspacing="0" width="95%"><tr><td style="word-wrap: break-word;" bgcolor="#f3f3f3"><span style="font-weight: bold; color: #990000;"></span># cp /usr/local/mysql/support-files/mysql.server&nbsp; /etc/rc.d/init.d/mysqld<br /># chkconfig --add mysqld <br /># chkconfig --level 2345 mysqld on</td></tr></table>　　修改MySQL的最大连接数(<a href="http://idoall.org/link.php?url=http://idoall.org%2Fspace.php%253Fuid%253D1%2526amp%253Bdo%253Dblog%2526amp%253Bid%253D39">vi的更多命令</a>)<br /><table style="border: 1px dotted #cccccc; table-layout: fixed;" align="center" border="0" cellpadding="6" cellspacing="0" width="95%"><tr><td style="word-wrap: break-word;" bgcolor="#f3f3f3"><span style="font-weight: bold; color: #990000;"></span># vi /etc/my.cnf&nbsp;&nbsp;&nbsp;&nbsp; //对mysql配置文件进行修改</td></tr></table>　　将下面的代码放到my.cnf文件中<span style="font-style: italic;"><br /></span><table style="border: 1px dotted #cccccc; table-layout: fixed;" align="center" border="0" cellpadding="6" cellspacing="0" width="95%"><tr><td style="word-wrap: break-word;" bgcolor="#f3f3f3"><span style="font-weight: bold; color: #990000;"></span><span style="font-style: italic;">[mysqld]</span><br style="font-style: italic;" /><span style="font-style: italic;">set-variable=max_connections=1000&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #设置最大连接数为1000</span><br style="font-style: italic;" /><span style="font-style: italic;">set-variable=max_user_connections=500&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #设置每用户最大连接数为500</span><br style="font-style: italic;" /><span style="font-style: italic;">set-variable=wait_timeout=200&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; #表示200秒后将关闭空闲（IDLE）的连接，但是对正在工作的连接不影响。</span></td></tr></table><span style="font-style: italic;"></span>　　保存并退出编辑的my.cnf文件<br />　　启动mysql服务<br /><table style="border: 1px dotted #cccccc; table-layout: fixed;" align="center" border="0" cellpadding="6" cellspacing="0" width="95%"><tr><td style="word-wrap: break-word;" bgcolor="#f3f3f3"><span style="font-weight: bold; color: #990000;"></span># service mysqld start</td></tr></table><br /><br />　　<span style="font-weight: bold;">2)安装Apache</span>(<a href="http://idoall.org/link.php?url=http://bbs.idoall.org%2Fviewthread.php%3Ftid%3D5%26extra%3Dpage%253D1">httpd-2.2.11.tar.gz</a>)<br /><table style="border: 1px dotted #cccccc; table-layout: fixed;" align="center" border="0" cellpadding="6" cellspacing="0" width="95%"><tr><td style="word-wrap: break-word;" bgcolor="#f3f3f3"><span style="font-weight: bold; color: #990000;"></span># tar -zxvf httpd-2.2.11.tar.gz<br /># cd httpd-2.2.11<br /># ./configure --prefix=/usr/local/apache --enable-so --enable-rewrite --enable-mods-shared=most</td></tr></table>　　<span style="font-weight: bold;"></span><span style="font-weight: bold;">说明： </span><br />　　<span style="font-weight: bold;"></span>--enable-so&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //让Apache可以支持DSO模式，注意，这里采用的是Apache2.0的语法。如果你的Apache是1.3版本，应改为--enable-module=so。 <br />　　<span style="font-weight: bold;"></span>--enable-mods-shared=most&nbsp;&nbsp;&nbsp;&nbsp; //告诉编译器将所有标准模块都编译为DSO模块。你要是用的是Apache1.3,改为--enable-shared=max就可以。 <br />　　<span style="font-weight: bold;"></span>--enable-rewrite&nbsp;&nbsp;&nbsp;&nbsp; //支持地址重写功能，使用1.3版本的朋友请将它改为--enable-module=rewrite。<br /><table style="border: 1px dotted #cccccc; table-layout: fixed;" align="center" border="0" cellpadding="6" cellspacing="0" width="95%"><tr><td style="word-wrap: break-word;" bgcolor="#f3f3f3"><span style="font-weight: bold; color: #990000;"></span> # make<br /># make install<br /># vi /usr/local/apache/conf/httpd.conf&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //修改Apache配置文件，添加ServerName <span style="font-style: italic;">www.yourdomain.com&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; （或ServerName 本机ip）</span></td></tr></table>　　<span style="font-weight: bold;"></span>对下面的内容在httpd.conf中进行查找和修改<br style="font-style: italic;" />　　<span style="font-weight: bold;"></span><span style="font-style: italic;">DirectoryIndex index.php index.html&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //修改默认启动页</span><br style="font-style: italic;" />　　<span style="font-weight: bold;"></span><span style="font-style: italic;">DocumentRoot "/var/www/html/cacti"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //指定主目录(/usr/local/apache2/htdocs)</span><br style="font-style: italic;" />　　<span style="font-weight: bold;"></span><span style="font-style: italic;">ServerName localhost:80</span><br style="font-style: italic;" /><br style="font-style: italic;" />　　<span style="font-weight: bold;"></span><span style="font-style: italic;">查找AddType application/x-compress .Z</span><br style="font-style: italic;" />　　<span style="font-weight: bold;"></span><span style="font-style: italic;">在其下加入 AddType application/x-tar .tgz</span><br style="font-style: italic;" />　　<span style="font-weight: bold;"></span><span style="font-style: italic;">AddType application/x-httpd-php .php</span><br style="font-style: italic;" />　　<span style="font-weight: bold;"></span><span style="font-style: italic;">AddType image/x-icon .ico</span><br /><br />　　<span style="font-weight: bold;"></span>在rc.local上加入一行/usr/local/apache/bin/apachectl &#8211;k start,系统启动时启动Apache服务。<br /><table style="border: 1px dotted #cccccc; table-layout: fixed;" align="center" border="0" cellpadding="6" cellspacing="0" width="95%"><tr><td style="word-wrap: break-word;" bgcolor="#f3f3f3"><span style="font-weight: bold; color: #990000;"></span># vi /etc/rc.d/rc.local</td></tr></table><br />　　<span style="font-weight: bold;"></span>将 apache 注册为 Linux 系统服务(<a href="http://idoall.org/link.php?url=http://idoall.org%2Fspace.php%253Fuid%253D1%2526amp%253Bdo%253Dblog%2526amp%253Bid%253D37">chkconfig的更多命令</a>)<br /><table style="border: 1px dotted #cccccc; table-layout: fixed;" align="center" border="0" cellpadding="6" cellspacing="0" width="95%"><tr><td style="word-wrap: break-word;" bgcolor="#f3f3f3"><span style="font-weight: bold; color: #990000;"></span># cp /usr/local/apache/bin/apachectl /etc/rc.d/init.d/httpd<br /># chkconfig --add httpd<br /># service httpd start&nbsp;&nbsp; //启动服务<br /># service httpd stop&nbsp;&nbsp;&nbsp; //停止服务<br /># service httpd restart //重新启动</td></tr></table><br /><br />　　<span style="font-weight: bold;">3)</span><span style="font-weight: bold;">安装PHP</span>(<a href="http://idoall.org/link.php?url=http://www.filewatcher.com%252F_%252F%253Fq%253Dphp-5.2.10.tar.bz2">php-5.2.10.tar.bz2</a>)<br />　　<span style="font-weight: bold;"></span>先安装zlib,freetype,libpng,jpeg以便于让PHP支持GD库（Cacti的WeatherMap插件必须要较新GD库的支持）<br /><br />　　<span style="font-weight: bold;">3).i).安装zlib</span>(<a href="http://idoall.org/link.php?url=http://www.filewatcher.com%252F_%252F%253Fq%253Dzlib-1.2.3.tar.gz">zlib-1.2.3.tar.gz</a>)<br /><table style="border: 1px dotted #cccccc; table-layout: fixed;" align="center" border="0" cellpadding="6" cellspacing="0" width="95%"><tr><td style="word-wrap: break-word;" bgcolor="#f3f3f3"><span style="font-weight: bold; color: #990000;"></span># cd /usr/local/_temp<br /># tar -zxvf zlib-1.2.3.tar.gz<br /># cd zlib-1.2.3<br /># ./configure --prefix=/usr/local/zlib<br /># make<br /># make install</td></tr></table><br /><br />　　<span style="font-weight: bold;">3).ii).安装libpng</span>(<a href="http://idoall.org/link.php?url=http://www.filewatcher.com%252F_%252F%253Fq%253Dlibpng-1.2.16.tar.gz">libpng-1.2.16.tar.gz</a>)<br /><table style="border: 1px dotted #cccccc; table-layout: fixed;" align="center" border="0" cellpadding="6" cellspacing="0" width="95%"><tr><td style="word-wrap: break-word;" bgcolor="#f3f3f3"><span style="font-weight: bold; color: #990000;"></span># tar -zxvf libpng-1.2.16.tar.gz<br /># cd libpng-1.2.16<br /># cd scripts/<br /># mv makefile.linux ../makefile<br /># cd ..<br /># make<br /># make install</td></tr></table>　　<span style="font-weight: bold;"></span>注意，这里的makefile不是用./configure生成，而是直接从scripts/里拷一个<br /><br />　　<span style="font-weight: bold;">3).iii).安装freetype</span>(<a href="http://idoall.org/link.php?url=http://www.filewatcher.com%252F_%252F%253Fq%253Dfreetype-2.3.4.tar.gz">freetype-2.3.4.tar.gz</a>)<br /><table style="border: 1px dotted #cccccc; table-layout: fixed;" align="center" border="0" cellpadding="6" cellspacing="0" width="95%"><tr><td style="word-wrap: break-word;" bgcolor="#f3f3f3"><span style="font-weight: bold; color: #990000;"></span># tar -zxvf freetype-2.3.4.tar.gz<br /># cd freetype-2.3.4&nbsp; <br /># ./configure --prefix=/usr/local/freetype<br /># make<br /># make install</td></tr></table><br />　　<span style="font-weight: bold;"></span><span style="font-weight: bold;">3).iv).安装jpeg</span>(<a href="http://idoall.org/link.php?url=http://www.filewatcher.com%252F_%252F%253Fq%253Djpegsrc.v6b.tar.gz">jpegsrc.v6b.tar.gz</a>)<br /><table style="border: 1px dotted #cccccc; table-layout: fixed;" align="center" border="0" cellpadding="6" cellspacing="0" width="95%"><tr><td style="word-wrap: break-word;" bgcolor="#f3f3f3"><span style="font-weight: bold; color: #990000;"></span># tar -zxvf jpegsrc.v6b.tar.gz<br /># cd jpeg-6b/<br /># mkdir /usr/local/libjpeg<br /># mkdir /usr/local/libjpeg/include<br /># mkdir /usr/local/libjpeg/bin<br /># mkdir /usr/local/libjpeg/lib<br /># mkdir /usr/local/libjpeg/man<br /># mkdir /usr/local/libjpeg/man/man1<br /># ./configure --prefix=/usr/local/libjpeg --enable-shared --enable-static<br /># make<br /># make install</td></tr></table>　　<span style="font-weight: bold;"></span>注意，这里configure一定要带--enable-shared参数，不然，不会生成共享库<br /><br />　　<span style="font-weight: bold;">3).v).安装Fontconfig</span>(<a href="http://idoall.org/link.php?url=http://www.filewatcher.com%252F_%252F%253Fq%253Dfontconfig-2.4.2.tar.gz">fontconfig-2.4.2.tar.gz</a>)<br /><table style="border: 1px dotted #cccccc; table-layout: fixed;" align="center" border="0" cellpadding="6" cellspacing="0" width="95%"><tr><td style="word-wrap: break-word;" bgcolor="#f3f3f3"><span style="font-weight: bold; color: #990000;"></span># tar -zxvf fontconfig-2.4.2.tar.gz<br /># cd fontconfig-2.4.2<br /># ./configure --with-freetype-config=/usr/local/freetype<br /># make<br /># make install</td></tr></table><br />　　<span style="font-weight: bold;"></span><span style="font-weight: bold;">3).vi).安装GD</span>(<a href="http://idoall.org/link.php?url=http://www.filewatcher.com%252F_%252F%253Fq%253Dgd-2.0.34.tar.gz">gd-2.0.34.tar.gz</a>)<br /><table style="border: 1px dotted #cccccc; table-layout: fixed;" align="center" border="0" cellpadding="6" cellspacing="0" width="95%"><tr><td style="word-wrap: break-word;" bgcolor="#f3f3f3"><span style="font-weight: bold; color: #990000;"></span># tar -zxvf gd-2.0.34.tar.gz<br /># cd gd-2.0.34<br /># ./configure --prefix=/usr/local/libgd --with-png --with-freetype=/usr/local/freetype --with-jpeg=/usr/local/libjpeg<br /># make<br /># make install</td></tr></table>　<span style="font-weight: bold;"></span><fieldset><legend>编译成功后会显示以下信息</legend>** Configuration summary for gd 2.0.34:<br /> <br /> &nbsp;&nbsp; Support for PNG library:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; yes<br /> &nbsp;&nbsp; Support for JPEG library:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; yes<br /> &nbsp;&nbsp; Support for Freetype 2.x library: yes<br /> &nbsp;&nbsp; Support for Fontconfig library:&nbsp;&nbsp; yes<br /> &nbsp;&nbsp; Support for Xpm library:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; no<br /> &nbsp;&nbsp; Support for pthreads:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; yes</fieldset><br />　　<span style="font-weight: bold;">3).vii).编辑/etc/ld.so.conf文件，添加以下几行到此文件中。</span><br /><table style="border: 1px dotted #cccccc; table-layout: fixed;" align="center" border="0" cellpadding="6" cellspacing="0" width="95%"><tr><td style="word-wrap: break-word;" bgcolor="#f3f3f3"><span style="font-weight: bold; color: #990000;"></span># vi /etc/ld.so.conf</td></tr></table><br />　　/usr/local/zlib/lib<br />　　/usr/local/freetype/lib<br />　　/usr/local/libjpeg/lib<br />　　/usr/local/libgd/lib<br /><br /><table style="border: 1px dotted #cccccc; table-layout: fixed;" align="center" border="0" cellpadding="6" cellspacing="0" width="95%"><tr><td style="word-wrap: break-word;" bgcolor="#f3f3f3"><span style="font-weight: bold; color: #990000;"></span># ldconfig -v&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //并执行ldconfig命令，使用动态装入器装载找到共享库</td></tr></table><br /><br />　　<span style="font-weight: bold;">3).viii).安装libxml</span>(<a href="http://idoall.org/link.php?url=http://www.filewatcher.com%252F_%252F%253Fq%253Dlibxml2-2.6.32.tar.gz">libxml2-2.6.32.tar.gz</a>)<br /><table style="border: 1px dotted #cccccc; table-layout: fixed;" align="center" border="0" cellpadding="6" cellspacing="0" width="95%"><tr><td style="word-wrap: break-word;" bgcolor="#f3f3f3"><span style="font-weight: bold; color: #990000;"></span># tar -zxvf libxml2-2.6.32.tar.gz<br /># cd libxml2-2.6.32<br /># ./configure&nbsp; --prefix=/usr/local/libxml2<br /># make<br /># make install</td></tr></table><br />　　<span style="font-weight: bold;">3).ix).安装php</span>(<a href="http://idoall.org/link.php?url=http://www.filewatcher.com%252F_%252F%253Fq%253Dphp-5.2.10.tar.bz2">php-5.2.10.tar.bz2</a>)<br /><table style="border: 1px dotted #cccccc; table-layout: fixed;" align="center" border="0" cellpadding="6" cellspacing="0" width="95%"><tr><td style="word-wrap: break-word;" bgcolor="#f3f3f3"><span style="font-weight: bold; color: #990000;"></span># tar jxf php-5.2.10.tar.bz2<br /># cd php-5.2.10<br /># ./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache/bin/apxs --with-mysql=/usr/local/mysql --with-gd=/usr/local/libgd --enable-gd-native-ttf --with-ttf --enable-gd-jis-conv --with-freetype-dir=/usr/local/freetype --with-jpeg-dir=/usr/local/libjpeg --with-png-dir=/usr --with-zlib-dir=/usr/local/zlib --enable-xml --enable-mbstring --enable-sockets --with-snmp --enable-short-tags</td></tr></table>　　<span style="font-weight: bold;">说明：</span><br />　　<span style="font-weight: bold;"></span>--with-apxs2=/usr/local/apache/bin/apxs&nbsp; //这是加入apache中为DSO模块的位置<br />　　<span style="font-weight: bold;"></span>--with-mysql=/usr/local/mysql&nbsp;&nbsp;&nbsp; //支持MySQl<br />　　<span style="font-weight: bold;"></span>--with-gd=/usr/local/libgd&nbsp;&nbsp;&nbsp;&nbsp; //支持GD库<br />　　<span style="font-weight: bold;"></span>--enable-gd-native-ttf&nbsp;&nbsp;&nbsp;&nbsp; //激活对本地 TrueType 字符串函数的支持<br />　　<span style="font-weight: bold;"></span>--with-ttf&nbsp;&nbsp;&nbsp;&nbsp; //激活对 FreeType 1.x 的支持<br />　　<span style="font-weight: bold;"></span>--enable-gd-jis-conv //使JIS-mapped可用，支持日文字体<br />　　<span style="font-weight: bold;"></span>--with-freetype-dir=/usr/local/freetype&nbsp;&nbsp;&nbsp; //激活对 FreeType 2.x 的支持<br />　　<span style="font-weight: bold;"></span>--with-jpeg-dir=/usr/local/libjpeg //激活对 jpeg-6b 的支持<br />　　<span style="font-weight: bold;"></span>--with-png-dir=/usr&nbsp;&nbsp; //激活对 png 的支持<br />　　<span style="font-weight: bold;"></span>--with-zlib-dir=/usr/local/zlib //激活对zlib 的支持<br />　　<span style="font-weight: bold;"></span>--enable-xml&nbsp;&nbsp;&nbsp;&nbsp; //支持XML<br />　　<span style="font-weight: bold;"></span>--enable-mbstring&nbsp;&nbsp;&nbsp; //激活mbstring模块<br />　　<span style="font-weight: bold;"></span>--enable-sockets&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //支持套接字<br />　　<span style="font-weight: bold;"></span>--with-snmp&nbsp;&nbsp;&nbsp;&nbsp; //支持snmp<br />　　<span style="font-weight: bold;"></span>--enable-short-tags&nbsp; //支持PHP的短标记 <br /><table style="border: 1px dotted #cccccc; table-layout: fixed;" align="center" border="0" cellpadding="6" cellspacing="0" width="95%"><tr><td style="word-wrap: break-word;" bgcolor="#f3f3f3"><span style="font-weight: bold; color: #990000;"></span># make<br /># make install<br /># cp php.ini-recommended /usr/local/php/lib/php.ini&nbsp;&nbsp; //复制php配置文件<br /># ln -s /usr/local/php/bin/* /usr/local/bin/&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //建立符合链接<br /># service httpd restart //重新启动apache服务</td></tr></table><br /><br />　　<span style="font-weight: bold;"></span><span style="font-weight: bold;">4).安装RRDTool</span>(<a href="http://idoall.org/link.php?url=http://www.filewatcher.com%252F_%252F%253Fq%253Drrdtool-1.2.23.tar.gz">rrdtool-1.2.23.tar.gz</a>)<br />　　<span style="font-weight: bold;"></span>由于<a href="http://idoall.org/link.php?url=http://www.filewatcher.com%252F_%252F%253Fq%253Drrdtool-1.2.23.tar.gz">rrdtool-1.2.23</a>需要一些库文件支持，故需先安装配置支持的环境，然后编译安装。直接运行以下bash脚本就可以完成安装：<br />　　<span style="font-weight: bold;"></span>注 意：将cgilib-0.6.tar.gz、zlib-1.2.3.tar.gz、libpng-1.2.18.tar.gz、freetype- 2.3.5.tar.gz、libart_lgpl-2.3.17.tar.gz、rrdtool-1.2.23.tar.gz放到/usr/local /_temp/rrdtool目录下，将脚本保存为/usr/local/_temp/rrdtool/rrdtoolinstall.sh，并给执行权 限chmod u+x /usr/local/_temp/rrdtool/rrdtoolinstall.sh。<br />　　<span style="font-weight: bold;"></span>以下链接是我重新打好的一个<a href="http://idoall.org/link.php?url=http://bbs.idoall.org%2Fviewthread.php%3Ftid%3D6%26extra%3Dpage%253D1">rrdtool-1.2.23</a>的安装包，里面包括了所有用到的库文件和安装脚本，下载解压后执行脚本<span style="font-weight: bold;">sh rrdinstall.sh</span>即可以完成RRDTool的安装。<br /><table style="border: 1px dotted #cccccc; table-layout: fixed;" align="center" border="0" cellpadding="6" cellspacing="0" width="95%"><tr><td style="word-wrap: break-word;" bgcolor="#f3f3f3"><span style="font-weight: bold; color: #990000;"></span>#!/bin/sh<br />BUILD_DIR=`pwd`<br />INSTALL_DIR=/usr/local/rrdtool<br />cd $BUILD_DIR<br />tar zxf cgilib-0.5.tar.gz<br />cd cgilib-0.5<br />make CC=gcc CFLAGS="-O3 -fPIC -I."<br />mkdir -p $BUILD_DIR/lb/include<br />cp *.h $BUILD_DIR/lb/include<br />mkdir -p $BUILD_DIR/lb/lib<br />cp libcgi* $BUILD_DIR/lb/lib<br />cd $BUILD_DIR<br />tar&nbsp; zxf zlib-1.2.3.tar.gz<br />cd zlib-1.2.3<br />env CFLAGS="-O3 -fPIC" ./configure --prefix=$BUILD_DIR/lb<br />make<br />make install<br />cd $BUILD_DIR<br />tar zxvf libpng-1.2.18.tar.gz<br />cd libpng-1.2.18<br />env CPPFLAGS="-I$BUILD_DIR/lb/include" LDFLAGS="-L$BUILD_DIR/lb/lib" CFLAGS="-O3 -fPIC" \<br />&nbsp;&nbsp;&nbsp; ./configure --disable-shared --prefix=$BUILD_DIR/lb<br />make<br />make install<br />cd $BUILD_DIR<br />tar zxvf freetype-2.3.5.tar.gz<br />cd freetype-2.2.5<br />env CPPFLAGS="-I$BUILD_DIR/lb/include" LDFLAGS="-L$BUILD_DIR/lb/lib" CFLAGS="-O3 -fPIC" \<br />&nbsp;&nbsp;&nbsp; ./configure --disable-shared --prefix=$BUILD_DIR/lb<br />make<br />make install<br /><br /><br />cd $BUILD_DIR<br />tar zxvf libart_lgpl-2.3.17.tar.gz<br />cd libart_lgpl-2.3.17<br />env CFLAGS="-O3 -fPIC" ./configure --disable-shared --prefix=$BUILD_DIR/lb<br />make<br />make install<br /><br />IR=-I$BUILD_DIR/lb/include<br />CPPFLAGS="$IR $IR/libart-2.0 $IR/freetype2 $IR/libpng"<br />LDFLAGS="-L$BUILD_DIR/lb/lib"<br />CFLAGS=-O3<br />export CPPFLAGS LDFLAGS CFLAGS<br /><br />cd $BUILD_DIR<br />tar zxf rrdtool-1.2.23.tar.gz<br />cd rrdtool-1.2.23<br />./configure --prefix=$INSTALL_DIR --disable-python --disable-tcl &amp;&amp; make &amp;&amp; make install</td></tr></table><br /><table style="border: 1px dotted #cccccc; table-layout: fixed;" align="center" border="0" cellpadding="6" cellspacing="0" width="95%"><tr><td style="word-wrap: break-word;" bgcolor="#f3f3f3"><span style="font-weight: bold; color: #990000;"></span># ln -s /usr/local/rrdtool/bin/* /usr/local/bin/&nbsp;&nbsp;&nbsp; //完成后建立符号连接<br /># rrdtool -v&nbsp;&nbsp;&nbsp; //查看rrdtool版本，测试rrdtool是否安装成功</td></tr></table><br /><br />　　<span style="font-weight: bold;"></span><span style="font-weight: bold;">5).安装net-snmp</span>(<a href="http://idoall.org/link.php?url=http://www.filewatcher.com%252F_%252F%253Fq%253Dnet-snmp-5.2.4.tar.gz">net-snmp-5.2.4.tar.gz</a>)<br /><table style="border: 1px dotted #cccccc; table-layout: fixed;" align="center" border="0" cellpadding="6" cellspacing="0" width="95%"><tr><td style="word-wrap: break-word;" bgcolor="#f3f3f3"><span style="font-weight: bold; color: #990000;"></span># tar -zxvf net-snmp-5.2.4.tar.gz<br /># cd net-snmp-5.2.4<br /># ./configure --prefix=/usr/local/net-snmp&nbsp; --enable-developer<br /># make<br /># make install<br /># ln -s /usr/local/net-snmp/bin/* /usr/local/bin/<br /># cp EXAMPLE.conf&nbsp; /usr/local/net-snmp/share/snmp/snmpd.conf<br /># vi /usr/local/net-snmp/share/snmp/snmpd.conf&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //修改snmpd.conf（修改COMMUNITY、允许抓取snmp数据的主机、抓取数据范围等）。</td></tr></table><br style="font-style: italic;" /><span style="font-style: italic;"></span><fieldset><legend>以下是我的snmpd.conf配置</legend><span style="font-style: italic;">##########################################</span><br style="font-style: italic;" /><span style="font-style: italic;">#&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sec.name&nbsp; source&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; community</span><br style="font-style: italic;" /><span style="font-style: italic;">com2sec local&nbsp;&nbsp;&nbsp;&nbsp; localhost&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public</span><br style="font-style: italic;" /><span style="font-style: italic;">##########################################</span></fieldset><br /><table style="border: 1px dotted #cccccc; table-layout: fixed;" align="center" border="0" cellpadding="6" cellspacing="0" width="95%"><tr><td style="word-wrap: break-word;" bgcolor="#f3f3f3"><span style="font-weight: bold; color: #990000;"></span># /usr/local/net-snmp/sbin/snmpd&nbsp;&nbsp;&nbsp;&nbsp; //启动SNMP服务<br /># vi /etc/rc.d/rc.local&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //在rc.local上加入一行/usr/local/net-snmp/sbin/snmpd,系统启动时启动SNMP服务。</td></tr></table><br /><br />　　<span style="font-weight: bold;"></span><span style="font-weight: bold;">6).安装cacti</span>(<a href="http://idoall.org/link.php?url=http://www.filewatcher.com%252F_%252F%253Fq%253Dcacti-0.8.7e.tar.gz">cacti-0.8.7e.tar.gz</a>)<br /><table style="border: 1px dotted #cccccc; table-layout: fixed;" align="center" border="0" cellpadding="6" cellspacing="0" width="95%"><tr><td style="word-wrap: break-word;" bgcolor="#f3f3f3"><span style="font-weight: bold; color: #990000;"></span># tar -zxvf cacti-0.8.7e.tar.gz<br /># mv &#8211;r cacti-0.8.7e /var/www/html/cacti<br /># vi /var/www/html/cacti/include/config.php</td></tr></table><br /><fieldset><legend>config.php文件中需要修改的内容</legend>$database_type = "mysql";<br />$database_default = "cacti";<br />$database_hostname = "localhost";<br />$database_username = "cacti";<br />$database_password = "cacti";<br />$database_port = "3306";</fieldset><br /><br /><table style="border: 1px dotted #cccccc; table-layout: fixed;" align="center" border="0" cellpadding="6" cellspacing="0" width="95%"><tr><td style="word-wrap: break-word;" bgcolor="#f3f3f3"><span style="font-weight: bold; color: #990000;"></span># vi /var/www/html/cacti/include/global.php</td></tr></table><br /><fieldset><legend>global.php文件中修改的内容</legend>$database_type = "mysql";<br />$database_default = "cacti";<br />$database_hostname = "localhost";<br />$database_username = "cacti";<br />$database_password = "cacti";<br />$database_port = "3306";</fieldset>　　<span style="font-weight: bold;"></span><span style="font-weight: bold;"></span>我用http://serverip来访问cacti所以不用修改下面行<br />　　<span style="font-weight: bold;"></span><span style="font-weight: bold;"></span>如果你用http://serverip/cacti/访问cacti应将下面行修改为：$config['url_path'] = '/cacti/';<br /><fieldset><legend>global.php文件中的内容</legend>$config['url_path'] = '/';</fieldset><br /><table style="border: 1px dotted #cccccc; table-layout: fixed;" align="center" border="0" cellpadding="6" cellspacing="0" width="95%"><tr><td style="word-wrap: break-word;" bgcolor="#f3f3f3"><span style="font-weight: bold; color: #990000;"></span># useradd cacti&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //添加cacti用户<br /># chown -R cacti /var/www/html/cacti/rra&nbsp;&nbsp;&nbsp;&nbsp; //将rra目录的所有权给cacti用户<br /># chgrp -R cacti /var/www/html/cacti&nbsp;&nbsp;&nbsp; //修改cacti目录所属组</td></tr></table><br /><table style="border: 1px dotted #cccccc; table-layout: fixed;" align="center" border="0" cellpadding="6" cellspacing="0" width="95%"><tr><td style="word-wrap: break-word;" bgcolor="#f3f3f3"><span style="font-weight: bold; color: #990000;"></span># su cacti&nbsp;&nbsp; //为cacti用户添加cron任务<br /># crontab -e&nbsp;&nbsp; //编辑定时任务<br />*/5 * * * * /usr/local/bin/php /var/www/html/cacti/poller.php &gt; /dev/null 2&gt;&amp;1<br /># /usr/local/bin/php /var/www/html/cacti/poller.php</td></tr></table><br /><fieldset><legend>正确输出类似于下面内容</legend>OK u:0.01 s:0.02 r:21.42<br />OK u:0.01 s:0.02 r:21.42<br />OK  u:0.01 s:0.02 r:21.42<br />OK u:0.01 s:0.02 r:21.42<br />10/21/2008 01:48:41 PM -  SYSTEM STATS: Time:30.5831 Method:cmd.php Processes:3 Threads:N/A Hosts:19  HostsPerProcess:7 DataSources:401 RRDsProcessed:220<!--   --></fieldset><br /><table style="border: 1px dotted #cccccc; table-layout: fixed;" align="center" border="0" cellpadding="6" cellspacing="0" width="95%"><tr><td style="word-wrap: break-word;" bgcolor="#f3f3f3"><span style="font-weight: bold; color: #990000;"></span># mysql -uroot -p&nbsp; //登录mysql 配置cacti数据库<br />mysql&gt; create database cacti;<br />mysql&gt; grant all on cacti.* to cacti@localhost identified by "cacti";<br />mysql&gt;exit<br /># mysql -uroot -p cacti &lt; /var/www/html/cacti/cacti.sql&nbsp;&nbsp;&nbsp;&nbsp; //导入cacti数据库初始化脚本</td></tr></table><br /><br />　　<span style="font-weight: bold;"></span><span style="font-weight: bold;">7).</span><span style="font-weight: bold;">完成cacti安装</span><br /><br />　　<span style="font-weight: bold;"></span><span style="font-weight: bold;"></span>在游览器输入 http://serverip<br />　　<span style="font-weight: bold;"></span><span style="font-weight: bold;"></span>默认用户名：admin 密码：admin<br /><br /><fieldset><legend>设置cacti用到的命令路径</legend>snmpwalk Binary Path&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /usr/local/bin/snmpwalk<br />snmpget Binary Path&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /usr/local/bin/snmpget<br />snmpbulkwalk Binary Path&nbsp;&nbsp;&nbsp; /usr/local/bin/snmpbulkwalk<br />snmpgetnext Binary Path&nbsp;&nbsp;&nbsp;&nbsp; /usr/local/bin/snmpgetnext<br />RRDTool Binary Path&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /usr/local/bin/rrdtool<br />RRDTool Default Font Path&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />PHP Binary Path&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /usr/local/bin/php<br />Cacti Log File Path&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /var/www/html/cacti/log/cacti.log<br />Spine Poller File Path&nbsp; </fieldset><br /><div style="position: relative; cursor: pointer;"><img style="position: absolute; margin-left: 472px; margin-top: 5px;" src="http://idoall.org/image/zoom.gif"  alt="" /><img title="点击图片，在新窗口显示原始尺寸" style="width: 500px;" src="http://idoall.org/attachment/200908/13/1_1250151801Ug34.jpg"  alt="" /></div><br />　　8).<span style="font-weight: bold;">安装插件</span><br />　　要安装别的插件前,先要安装cacti的一个patch－－Plugin Architecture,才能支持插件 <br />　　PA和cacti版本的关系<br />　　PA 1.0 = cacti 0.8.6i<br />　　PA 1.1 = cacti 0.8.6i et 0.8.6j<br />　　PA 2.0 = cacti 0.8.7b<br />　　PA 2.2 = cacti 0.8.7c<br />　　PA 2.4 = cacti 0.8.7d<br />　　PA 2.5 = cacti 0.8.7e<br /><br />　　<span style="font-weight: bold;">8).i).安装</span> <a href="http://idoall.org/link.php?url=http://bbs.idoall.org%2Fviewthread.php%3Ftid%3D7%26extra%3Dpage%253D1">cacti-plugin-arch.zip</a><br /><table style="border: 1px dotted #cccccc; table-layout: fixed;" align="center" border="0" cellpadding="6" cellspacing="0" width="95%"><tr><td style="word-wrap: break-word;" bgcolor="#f3f3f3"><span style="font-weight: bold; color: #990000;"></span># unzip cacti-plugin-arch.zip<br /># cp -R cacti-plugin-arch/* /var/www/html/cacti/&nbsp;&nbsp;&nbsp;&nbsp; //复制插件需要的文件到cacti<br /># cd /var/www/html/cacti/<br /># mysql -ucacti -p cacti &lt; pa.sql&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //导入插件的脚本<br /># patch -p1 -N&nbsp; &lt; cacti-plugin-0.8.7e-PA-v2.5.diff</td></tr></table><br />　　先开插件管理权限<div style="position: relative; cursor: pointer;"><img style="position: absolute; margin-left: 472px; margin-top: 5px;" src="http://idoall.org/image/zoom.gif"  alt="" /><img title="点击图片，在新窗口显示原始尺寸" style="width: 500px;" src="http://idoall.org/attachment/200908/13/1_1250158037bXUS.jpg"  alt="" /></div>　　进入"用户管理"-&gt;点admin-&gt;区域权限-&gt;Plugin Management<br /><div style="position: relative; cursor: pointer;"><img style="position: absolute; margin-left: 472px; margin-top: 5px;" src="http://idoall.org/image/zoom.gif"  alt="" /><img title="点击图片，在新窗口显示原始尺寸" style="width: 500px;" src="http://idoall.org/attachment/200908/13/1_1250151352Bb0I.gif"  alt="" /></div>　　安装<a href="http://idoall.org/link.php?url=http://bbs.idoall.org%2Fviewthread.php%3Ftid%3D9%26extra%3Dpage%253D1">settings</a>,<a href="http://idoall.org/link.php?url=http://bbs.idoall.org%2Fviewthread.php%3Ftid%3D10%26extra%3Dpage%253D1">thold</a>,<a href="http://idoall.org/link.php?url=http://bbs.idoall.org%2Fviewthread.php%3Ftid%3D8%26extra%3Dpage%253D1">monitor</a>插件<br />　　将monitor、settings、thold解压到/var/www/html/cacti/plugins目录<br />　　修改/var/www/html/cacti/include/global.php，将插件名字添加到数组<br /><table style="border: 1px dotted #cccccc; table-layout: fixed;" align="center" border="0" cellpadding="6" cellspacing="0" width="95%"><tr><td style="word-wrap: break-word;" bgcolor="#f3f3f3"><span style="font-weight: bold; color: #990000;"></span># vi /var/www/html/cacti/include/global.php</td></tr></table><br /><fieldset><legend>global.php文件中的内容</legend>$plugins = array();<br />//$plugins[] = 'thold';<br />$plugins[] = 'thold';<br />$plugins[] = 'monitor';<br />$plugins[] = 'settings';</fieldset><br />　　使用thold插件<br />　　<span style="font-weight: bold;">注：在写本文时使用的cacti 0.8.7e最新版，比以往版本有些变化，目前插件官司网上提供的monitor0.8.2和setting0.5并不支持cacti 0.8.7e，在此就不多介绍monitor和setting的使用。</span><br /><br />　　1&gt; 打开&#8220;Console-&gt;Settings-&gt;Alerting/Thold&#8221;，可以调整Thold的各项配置。例如：&#8220;Dead Host Notifications Email&#8221;处可填写设备当机时发送警告信息到哪个邮箱；勾选&#8220;Send alerts as text&#8221;项，可以设置只发送文本格式的邮件。<br />　　2&gt;打开&#8220;Templates-&gt;Threshold Templates&#8221;，可以添加、取出需要关联到预警系统的模板，例如：可以添加和&#8220;Interface-Traffic&#8221;模板的关联，选择 &#8220;traffic_in&#8221;、&#8220;traffic_out&#8221;数据项，分别设置警告阈值&#8220;High Threshold&#8221;（如200000000比特/秒）；可以添加和&#8220;Unix-Disk Space&#8221;模板的关联&#8230;&#8230;。<br />　　3&gt;打开&#8220;Create-&gt;New Graphs&#8221;，选择需要提供预警的设备，单击右侧上方的&#8220;Auto-create thresholds&#8221;创建预警项目。<br />　　4&gt;打开&#8220;Management-&gt;Thresholds&#8221;，可以管理已经创建的预警项目。<br />　　附： 按照官方文档安装了plugin architecture和settings、thold等plugins但是web页面里仍没什么变化，后来访问了下plugins.php，系统报没 有权限，然后直接点&#8221;login&#8221;直接就进系统了，由此可见不是没有权限，而应该是没有特定的权限，后来进入用户设置界面&#8221;User Management&#8221;将所用的用户点开，发现有个&#8221;plugin management&#8221;的权限没选中，选中，再Save，再回来刷页面，果然，左边有了新的一项菜单：&#8220;Plugin Management&#8221;，点进去可以进行plugin的管理，搞定。<br /><br />　　<span style="font-weight: bold;">9).安装模板</span><br /><br />　　本文只介绍安装mysql的模板(<a href="http://idoall.org/link.php?url=http://bbs.idoall.org%2Fviewthread.php%3Ftid%3D11%26extra%3Dpage%253D1">teMySQLcacti-20060810.tar.gz</a>)，其他的模板用户可以按此方式安装<br />　　按照官方文档中的3步<br />　　1. Put mysql_stats.php and dumpMemcachedStats.php in cacti/scripts/<br /><br />　　本文只拷了mysql_stats<br />　　<table style="border: 1px dotted #cccccc; table-layout: fixed;" align="center" border="0" cellpadding="6" cellspacing="0" width="95%"><tr><td style="word-wrap: break-word;" bgcolor="#f3f3f3"><span style="font-weight: bold; color: #990000;"></span># cp teMySQLcacti/mysql_stats.php /var/www/html/cacti/scripts</td></tr></table><br /><br />　　2. Either ensure your cacti poller is cron'd every 1 minute, or run the included&nbsp;&nbsp;&nbsp; BASH shell script to create a 300/600 step/heartbeat version of the XML file.<br />　　但其实tar本来就有cacti_host_template_temysql_host-step300-heartbeat600.xml<br /><br />　　上面的步骤很多余<br /><br />　　3. Import the .XML host using the cacti webinterface. Note,<br /><br />　　上面3步安装好后，开始再按照官方文档产生图<br /><br /><fieldset><legend>GRAPH CREATION</legend>==============<br /><br />0. Make sure you installed mysql_stats.php and dumpMemcachedStats.php.<br />1. Go to Management/Devices.<br />2. Add a new device.<br />3. Description can be whatever you want.<br />4. Hostname should resolve to IP of database machine.<br />5. Host template is teMySQL or memcached Host.<br />6. Now choose the "Create Graphs" link.<br />7. Highlight all graphs for the host (assuming you want them all).<br />8. Choose "Create"<br />9. A page will come up with several Password/Username pairs, fill them<br />&nbsp;&nbsp; all in with the cactipasswd/cactiuser you chose above. Hint: If you're<br />&nbsp;&nbsp; using Firefox, the second host you do this for you can just press down-<br />&nbsp;&nbsp; arrow twice, then tab, and the value will be filled in automatically<br />&nbsp;&nbsp; by the browser. The first time, I suggest typing in the username, copying<br />&nbsp;&nbsp; it, then doing a "paste-tab-tab-paste-tab-tab..." key combo until they're<br />&nbsp;&nbsp; all filled in, then repeat for the password. Painful, but doable.</fieldset><br /><div style="position: relative; cursor: pointer;"><img style="position: absolute; margin-left: 472px; margin-top: 5px;" src="http://idoall.org/image/zoom.gif"  alt="" /><img title="点击图片，在新窗口显示原始尺寸" style="width: 500px;" src="http://idoall.org/attachment/200908/13/1_1250157877H8hW.jpg"  alt="" /></div><br />　　需要在被检测的mysql库里添加检测机器的权限(仅需要process权限)：<br /><br />　　grant process on *.* to username@192.168.1.1 identified by &#8216;password&#8217;;<br />　　flush privileges;<br /><br /><strong>六、常见问题</strong><br /> 　　<br />　　<span style="font-weight: bold;">1、为什么图像不能显示？</span><br />　　先确定你的IP地址、snmp comunite、snmp version等信息配置没有错误。<br />　　如果是在linux下安装cacti的话，可以按以下步骤检测：<br />　　1.1、cacti的data sources和Graph Management均有debug。看是否有错误，比如rrd文件找不到等。<br />　　1.2、data sources里看rrd文件的名称，然后到/cacti/rra目录中看是否有该文件存在。<br />　　1.3、如果有rrd文件存在，则可以使用　　<table style="border: 1px dotted #cccccc; table-layout: fixed;" align="center" border="0" cellpadding="6" cellspacing="0" width="95%"><tr><td style="word-wrap: break-word;" bgcolor="#f3f3f3"><span style="font-weight: bold; color: #990000;"></span># rrdtool fetch yourRRDfile.rrd AVERAGE</td></tr></table>　　看该文件的采集的数据，如果都是&#8220;nan&#8221;，那就是没有取到数据。<br />　　1.4、有可能是snmpget、snmpwalk和rrdtool的路径错误。&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />　　1.5、排除错误后，需要重新建立该监测点（graph）。<br />　　提示：每一个图像的文件均会保存为rra目录里的一个rrd为后缀的文件（可以在&#8220;Data Sources&#8221;中看到）。&#8220;Data Sources&#8221;和&#8220;Graph Management&#8221;中均可以进行debug，可以从debug中得出错误信息。<br /><br />　　<span style="font-weight: bold;">2、为什么rra目录下什么都没有？</span><br />　　2.1、请查看该目录的权限。该目录的权限应为cactiuser可以读写。<br />　　2.2、如果目录的权限没有问题，那么可能是snmp的设置有问题，请手工测试一下：<br />　　# snmpwalk -v 2c -c public yourIP if<br />　　如果有数据返回，则snmp的数据没有问题。如果出现&#8220;Timeout: No Response from ...&#8221;之类的错误信息则是snmp设置的问题。<br />　　2.3、也可能是snmpwalk、snmpget和rrdtool的路径没有设置好在Settings－》Paths中检查设置是否正确。<br />　　<span style="color: #ff0000;">修改后请重建该监测点！否则不生效。</span><br /><br />　　<span style="font-weight: bold;">3、可以取到本机（linux）的数据，但却不能取到远程主机的数据？</span><br />　　Cacti有很多模板，有的是用SNMP进行数据采集，有的是用shell脚本进行采集。如果没有特别的原因建议都使用SNMP的。<br /> 　　Associated Graph Templates<br /> 　　前面带&#8220;ucd/net&#8221;的就是能使用ucd-snmp和net-snmp的模板。如：ucd/net - CPU Usage<br /> 　　Associated Data Queries<br /> 　　前面带SNMP的就是能使用snmp的。如：SNMP - Interface Statistics <br /> 　　当然，你还可以从www.cacti.net上找到新的模板或添加自己的模板。<br /><br />　　<strong>4、怎么备份Cacti和它的数据呀？<br /></strong>　　只需要备份rra目录和数据库就可以了。你喜欢也可以将log目录一起备份。<br /> 　　如果你自己添加了一些插件的话记得也拷过去。<br />　　<br />　　<strong>5、新建的device的Data Query里面的状态总是&#8220; Success [0 Items, 0 Rows]&#8221;？<br /></strong>　　请先确认你的snmpd.conf中的权限设置，是否允许cacti取这些OID的数据。可以使用snmpwalk命令来进行测试，比如：　　<table style="border: 1px dotted #cccccc; table-layout: fixed;" align="center" border="0" cellpadding="6" cellspacing="0" width="95%"><tr><td style="word-wrap: break-word;" bgcolor="#f3f3f3"><span style="font-weight: bold; color: #990000;"></span><span class="smalltxt"># </span>snmpwalk -c community -v 2c hostIP if</td></tr></table>　　如果你的snmpd.conf设置没有问题，那可能是下面这种情况：<br /> 旧版本的snmpwalk(比如redhat默认安装的5.0.6)缺少一些参数,比如-O中的"U"参数.(可以用snmpwalk --help来查看是否有该参数)。<br /> 　　而cacti-0.86g或以上版本需要这些参数,解决办法是安装一个新的net-snmp包(如:net-snmp5.2.1)，从而得到一个新snmpwalk的版本。<br /><br /> 　　<strong>6、</strong>有图但图例文字不能显示<br /><p><img src="http://idoall.org/attachment/200908/14/1_12502283343zo6.jpg"  alt="" /></p><p>　　添加RRDTool默认字体路径<br />　　如下图中将路径设置成：/usr/local/rrdtool/share/rrdtool/fonts/DejaVuSansMono-Roman.ttf<br /></p><div style="position: relative; cursor: pointer;"><img style="position: absolute; margin-left: 472px; margin-top: 5px;" src="http://idoall.org/image/zoom.gif"  alt="" /><img title="点击图片，在新窗口显示原始尺寸" style="width: 500px;" src="http://idoall.org/attachment/200908/14/1_1250228764i004.jpg"  alt="" /></div><div style="position: relative; cursor: pointer;"><img style="position: absolute; margin-left: 472px; margin-top: 5px;" src="http://idoall.org/image/zoom.gif"  alt="" /><img title="点击图片，在新窗口显示原始尺寸" style="width: 500px;" src="http://idoall.org/attachment/200908/14/1_12502288228PD5.jpg"  alt="" /></div><p><br /></p></div> </div><img src="http://www.cnblogs.com/lion.net/aggbug/1546183.html?type=1" width="1" height="1" alt=""/><p>评论: 1　<a href="http://www.cnblogs.com/lion.net/archive/2009/08/14/1546183.html#pagedcomment" target="_blank">查看评论</a>　<a href="http://www.cnblogs.com/lion.net/archive/2009/08/14/1546183.html#commentform" target="_blank">发表评论</a></p><hr/><p>最新新闻：<br/>· <a href="http://news.cnblogs.com/n/56793/" target="_blank">知名扩展 Firebug 的简化版登陆 Chrome</a><span style="color:gray">(2010-02-09 22:59)</span><br/>· <a href="http://news.cnblogs.com/n/56792/" target="_blank">Google 悄悄地启用 1e100.net，打枪地不要</a><span style="color:gray">(2010-02-09 22:57)</span><br/>· <a href="http://news.cnblogs.com/n/56791/" target="_blank">从 Google 代码库找到的好东西</a><span style="color:gray">(2010-02-09 22:46)</span><br/>· <a href="http://news.cnblogs.com/n/56789/" target="_blank">苹果在线商店临时关闭 或将推新Macbook</a><span style="color:gray">(2010-02-09 22:39)</span><br/>· <a href="http://news.cnblogs.com/n/56788/" target="_blank">豆瓣网推出豆瓣电台iPhone客户端</a><span style="color:gray">(2010-02-09 21:51)</span><br/></p><p>编辑推荐：<a href="http://news.cnblogs.com/n/56782/" target="_blank">2010年2月编程语言排行榜</a><br/></p><p>网站导航：<a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/" target="_blank">个人主页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/group/" target="_blank">小组</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://kb.cnblogs.com" target="_blank">知识库</a></p>]]></description></item><item><title>如何利用客户端缓存对网站进行优化?</title><link>http://www.cnblogs.com/lion.net/archive/2007/09/24/904717.html</link><dc:creator>Lion</dc:creator><author>Lion</author><pubDate>Mon, 24 Sep 2007 15:41:00 GMT</pubDate><guid>http://www.cnblogs.com/lion.net/archive/2007/09/24/904717.html</guid><description><![CDATA[<p>阅读: 3855 评论: 29 作者: <a href="http://www.cnblogs.com/lion.net/" target="_blank">Lion</a> 发表于 2007-09-24 23:41 <a href="http://www.cnblogs.com/lion.net/archive/2007/09/24/904717.html" target="_blank">原文链接</a></p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<h1>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 介绍</h1>
<font color="#0000ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 你的网站在并发访问很大并且无法承受压力的情况下,你会选择如何优化?</font>&nbsp;<br />
<font color="#0000ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font>很多人首先会想从服务器缓存方面着手对程序进行优化,许多不同的服务器缓存方式都有他们自己的特点,像我曾经参与的一些项目中,根据缓存的命中率不同使用过 Com+/Enterprise Libiary Caching/Windows服务,静态文件等方式的服务器端缓存和 <a href="http://lionsky.net/files/folders/admin/entry33514.aspx">HTTP Compression</a>技术,但客户端缓存往往却被人们忽略了,即使服务器的缓存让你的页面访问起来非常地快,但她依然需要依赖浏览器下载并输出,而当你加入客户端缓存时,会给你带来非常多的好处.因为她可以对站点中访问最频繁的页进行缓存充分地提高 Web 服务器的吞吐量（通常以每秒的请求数计算）以提升应用程序性能和可伸缩性。&nbsp;<br />
<font color="#0000ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font>一个在线购物调查显示，大多数人愿意去商店排队，但在在线购物时却不愿意等待。Websense调查公司称多达70%的上网者表示不愿意在页面读取上超过10秒钟。超过70%的人会因为中途速度过慢而取消当前的订单。 <br />
<br />
<h1>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 基础知识</h1>
<strong><font color="#0000ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font>1) 什么是&#8221;Last-Modified&#8221;?</strong>&nbsp;<br />
<br />
<font color="#0000ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font>在浏览器第一次请求某一个URL时，服务器端的返回状态会是200，内容是你请求的资源，同时有一个Last-Modified的属性标记此文件在服务期端最后被修改的时间，格式类似这样：&nbsp;<br />
<br />
<font color="#0000ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font>Last-Modified: Fri, 12 May 2006 18:53:33 GMT&nbsp;<br />
<br />
<font color="#0000ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font>客户端第二次请求此URL时，根据 HTTP 协议的规定，浏览器会向服务器传送 If-Modified-Since 报头，询问该时间之后文件是否有被修改过：&nbsp;<br />
<br />
<font color="#0000ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font>If-Modified-Since: Fri, 12 May 2006 18:53:33 GMT&nbsp;<br />
<br />
<font color="#0000ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font>如果服务器端的资源没有变化，则自动返回 HTTP 304 （Not Changed.）状态码，内容为空，这样就节省了传输数据量。当服务器端代码发生改变或者重启服务器时，则重新发出资源，返回和第一次请求时类似。 从而保证不向客户端重复发出资源，也保证当服务器有变化时，客户端能够得到最新的资源。&nbsp;<br />
<br />
<strong><font color="#0000ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font>2) 什么是&#8221;Etag&#8221;?&nbsp;<br />
</strong><br />
<font color="#0000ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font>HTTP 协议规格说明定义ETag为&#8220;被请求变量的实体值&#8221; （<a target="_blank" href="http://www.w3.org/Protocols/rfc2616/rfc2616%20-sec14.html">参见 &#8212;&#8212; 章节 14.19</a>）。 另一种说法是，ETag是一个可以与Web资源关联的记号（token）。典型的Web资源可以一个Web页，但也可能是JSON或XML文档。服务器单独负责判断记号是什么及其含义，并在HTTP响应头中将其传送到客户端，以下是服务器端返回的格式：&nbsp;<br />
<br />
<font color="#0000ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font>ETag: "50b1c1d4f775c61:df3"&nbsp;<br />
<br />
<font color="#0000ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font>客户端的查询更新格式是这样的：&nbsp;<br />
<br />
<font color="#0000ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font>If-None-Match: W/"50b1c1d4f775c61:df3"&nbsp;<br />
<br />
<font color="#0000ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font>如果ETag没改变，则返回状态304然后不返回，这也和Last-Modified一样。本人测试Etag主要在断点下载时比较有用。<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<h1>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Last-Modified和Etags如何帮助提高性能? </h1>
<font color="#0000ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font>聪明的开发者会把Last-Modified 和ETags请求的http报头一起使用，这样可利用客户端（例如浏览器）的缓存。因为服务器首先产生 Last-Modified/Etag标记，服务器可在稍后使用它来判断页面是否已经被修改。本质上，客户端通过将该记号传回服务器要求服务器验证其（客户端）缓存。&nbsp;<br />
<strong><font color="#0000ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font>过程如下:<br />
</strong><font color="#0000ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#0000ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font>1.&nbsp;客户端请求一个页面（A）。&nbsp;<br />
<font color="#0000ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#0000ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font>2.&nbsp;服务器返回页面A，并在给A加上一个Last-Modified/ETag。&nbsp;<br />
<font color="#0000ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#0000ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font>3.&nbsp;客户端展现该页面，并将页面连同Last-Modified/ETag一起缓存。&nbsp;<br />
<font color="#0000ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#0000ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font>4.&nbsp;客户再次请求页面A，并将上次请求时服务器返回的Last-Modified/ETag一起传递给服务器。&nbsp;<br />
<font color="#0000ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#0000ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font>5.&nbsp;服务器检查该Last-Modified或ETag，并判断出该页面自上次客户端请求之后还未被修改，直接返回响应304和一个空的响应体。<br />
<br />
<br />
<h1>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 示例代码</h1>
<font color="#0000ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font>下面的例子描述如何使用服务器端代码去操作客户端缓存:&nbsp;<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; width: 98%; font-size: 13px;"><span style="color: #008080;">&nbsp;1</span>&nbsp;<span style="color: #008000;">//</span><span style="color: #008000;">默认缓存的秒数</span><span style="color: #008000;"><br />
</span><span style="color: #008080;">&nbsp;2</span>&nbsp;<span style="color: #0000ff;">int</span><span style="color: #000000;">&nbsp;secondsTime&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">100</span><span style="color: #000000;">;<br />
</span><span style="color: #008080;">&nbsp;3</span>&nbsp;<span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;4</span>&nbsp;<span style="color: #008000;">//</span><span style="color: #008000;">判断最后修改时间是否在要求的时间内<br />
</span><span style="color: #008080;">&nbsp;5</span>&nbsp;<span style="color: #008000;">//</span><span style="color: #008000;">如果服务器端的文件没有被修改过，则返回状态是304，内容为空，这样就节省了传输数据量。如果服务器端的文件被修改过，则返回和第一次请求时类似。</span><span style="color: #008000;"><br />
</span><span style="color: #008080;">&nbsp;6</span>&nbsp;<span style="color: #0000ff;">if</span><span style="color: #000000;">&nbsp;(request.Headers[</span><span style="color: #000000;">"</span><span style="color: #000000;">If-Modified-Since</span><span style="color: #000000;">"</span><span style="color: #000000;">]&nbsp;</span><span style="color: #000000;">!=</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">null</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">&amp;&amp;</span><span style="color: #000000;">&nbsp;TimeSpan.FromTicks(DateTime.Now.Ticks&nbsp;</span><span style="color: #000000;">-</span><span style="color: #000000;">&nbsp;DateTime.Parse(request.Headers[</span><span style="color: #000000;">"</span><span style="color: #000000;">If-Modified-Since</span><span style="color: #000000;">"</span><span style="color: #000000;">]).Ticks).Seconds&nbsp;</span><span style="color: #000000;">&lt;</span><span style="color: #000000;">&nbsp;secondsTime)<br />
</span><span style="color: #008080;">&nbsp;7</span>&nbsp;<span style="color: #000000;">{<br />
</span><span style="color: #008080;">&nbsp;8</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">测试代码,在这里会发现,当浏览器返回304状态时,下面的日期并不会输出</span><span style="color: #008000;"><br />
</span><span style="color: #008080;">&nbsp;9</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;Response.Write(DateTime.Now);<br />
</span><span style="color: #008080;">10</span>&nbsp;<span style="color: #000000;"><br />
</span><span style="color: #008080;">11</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;response.StatusCode&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">304</span><span style="color: #000000;">;<br />
</span><span style="color: #008080;">12</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;response.Headers.Add(</span><span style="color: #000000;">"</span><span style="color: #000000;">Content-Encoding</span><span style="color: #000000;">"</span><span style="color: #000000;">,&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">gzip</span><span style="color: #000000;">"</span><span style="color: #000000;">);<br />
</span><span style="color: #008080;">13</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;response.StatusDescription&nbsp;</span><span style="color: #000000;">=</span><span style="color: #000000;">&nbsp;</span><span style="color: #000000;">"</span><span style="color: #000000;">Not&nbsp;Modified</span><span style="color: #000000;">"</span><span style="color: #000000;">;<br />
</span><span style="color: #008080;">14</span>&nbsp;<span style="color: #000000;">}<br />
</span><span style="color: #008080;">15</span>&nbsp;<span style="color: #0000ff;">else</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">16</span>&nbsp;<span style="color: #000000;">{<br />
</span><span style="color: #008080;">17</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">输出当前时间</span><span style="color: #008000;"><br />
</span><span style="color: #008080;">18</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;Response.Write(DateTime.Now);<br />
</span><span style="color: #008080;">19</span>&nbsp;<span style="color: #000000;"><br />
</span><span style="color: #008080;">20</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">设置客户端缓存状态</span><span style="color: #008000;"><br />
</span><span style="color: #008080;">21</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;SetClientCaching(response,&nbsp;DateTime.Now);<br />
</span><span style="color: #008080;">22</span>&nbsp;<span style="color: #000000;">}<br />
</span><span style="color: #008080;">23</span>&nbsp;<span style="color: #000000;"><br />
</span><span style="color: #008080;">24</span>&nbsp;<span style="color: #0000ff;">#region</span><span style="color: #000000;">&nbsp;SetClientCaching<img alt="" src="http://www.cnblogs.com/Images/dot.gif" />..</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">25</span>&nbsp;<span style="color: #808080;">///</span><span style="color: #008000;">&nbsp;</span><span style="color: #808080;">&lt;summary&gt;</span><span style="color: #008000;"><br />
</span><span style="color: #008080;">26</span>&nbsp;<span style="color: #808080;">///</span><span style="color: #008000;">&nbsp;设置客户端缓存状态<br />
</span><span style="color: #008080;">27</span>&nbsp;<span style="color: #808080;">///</span><span style="color: #008000;">&nbsp;</span><span style="color: #808080;">&lt;/summary&gt;</span><span style="color: #008000;"><br />
</span><span style="color: #008080;">28</span>&nbsp;<span style="color: #808080;">///</span><span style="color: #008000;">&nbsp;</span><span style="color: #808080;">&lt;param&nbsp;name="response"&gt;&lt;/param&gt;</span><span style="color: #008000;"><br />
</span><span style="color: #008080;">29</span>&nbsp;<span style="color: #808080;">///</span><span style="color: #008000;">&nbsp;</span><span style="color: #808080;">&lt;param&nbsp;name="lastModified"&gt;&lt;/param&gt;</span><span style="color: #808080;"><br />
</span><span style="color: #008080;">30</span>&nbsp;<span style="color: #0000ff;">private</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;SetClientCaching(HttpResponse&nbsp;response,&nbsp;DateTime&nbsp;lastModified)<br />
</span><span style="color: #008080;">31</span>&nbsp;<span style="color: #000000;">{<br />
</span><span style="color: #008080;">32</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;response.Cache.SetETag(lastModified.Ticks.ToString());<br />
</span><span style="color: #008080;">33</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;response.Cache.SetLastModified(lastModified);<br />
</span><span style="color: #008080;">34</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">public&nbsp;以指定响应能由客户端和共享（代理）缓存进行缓存。</span><span style="color: #008000;"><br />
</span><span style="color: #008080;">35</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;response.Cache.SetCacheability(HttpCacheability.Public);<br />
</span><span style="color: #008080;">36</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">是允许文档在被视为陈旧之前存在的最长绝对时间。</span><span style="color: #008000;"><br />
</span><span style="color: #008080;">37</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;response.Cache.SetMaxAge(</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;TimeSpan(</span><span style="color: #000000;">7</span><span style="color: #000000;">,&nbsp;</span><span style="color: #000000;">0</span><span style="color: #000000;">,&nbsp;</span><span style="color: #000000;">0</span><span style="color: #000000;">,&nbsp;</span><span style="color: #000000;">0</span><span style="color: #000000;">));<br />
</span><span style="color: #008080;">38</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">将缓存过期从绝对时间设置为可调时间</span><span style="color: #008000;"><br />
</span><span style="color: #008080;">39</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;response.Cache.SetSlidingExpiration(</span><span style="color: #0000ff;">true</span><span style="color: #000000;">);<br />
</span><span style="color: #008080;">40</span>&nbsp;<span style="color: #000000;">}<br />
</span><span style="color: #008080;">41</span>&nbsp;<span style="color: #0000ff;">#endregion</span></div>
<br />
<br />
<font color="#0000ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font>如果你的缓存是基于文件的方式,如XML或http中的.ashx处理,也可以使用下面的基于文件方式的客户端缓存:&nbsp;<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; width: 98%; font-size: 13px;"><span style="color: #008080;">&nbsp;1</span>&nbsp;<span style="color: #0000ff;">#region</span><span style="color: #000000;">&nbsp;SetFileCaching<img alt="" src="http://www.cnblogs.com/Images/dot.gif" />..</span><span style="color: #000000;"><br />
</span><span style="color: #008080;">&nbsp;2</span>&nbsp;<span style="color: #808080;">///</span><span style="color: #008000;">&nbsp;</span><span style="color: #808080;">&lt;summary&gt;</span><span style="color: #008000;"><br />
</span><span style="color: #008080;">&nbsp;3</span>&nbsp;<span style="color: #808080;">///</span><span style="color: #008000;">&nbsp;基于文件方式设置客户端缓存<br />
</span><span style="color: #008080;">&nbsp;4</span>&nbsp;<span style="color: #808080;">///</span><span style="color: #008000;">&nbsp;</span><span style="color: #808080;">&lt;/summary&gt;</span><span style="color: #008000;"><br />
</span><span style="color: #008080;">&nbsp;5</span>&nbsp;<span style="color: #808080;">///</span><span style="color: #008000;">&nbsp;</span><span style="color: #808080;">&lt;param&nbsp;name="fileName"&gt;&lt;/param&gt;</span><span style="color: #808080;"><br />
</span><span style="color: #008080;">&nbsp;6</span>&nbsp;<span style="color: #0000ff;">private</span><span style="color: #000000;">&nbsp;</span><span style="color: #0000ff;">void</span><span style="color: #000000;">&nbsp;SetFileCaching(HttpResponse&nbsp;response,&nbsp;</span><span style="color: #0000ff;">string</span><span style="color: #000000;">&nbsp;fileName)<br />
</span><span style="color: #008080;">&nbsp;7</span>&nbsp;<span style="color: #000000;">{<br />
</span><span style="color: #008080;">&nbsp;8</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;response.AddFileDependency(fileName);<br />
</span><span style="color: #008080;">&nbsp;9</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">基于处理程序文件依赖项的时间戳设置&nbsp;ETag&nbsp;HTTP&nbsp;标头。&nbsp;</span><span style="color: #008000;"><br />
</span><span style="color: #008080;">10</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;response.Cache.SetETagFromFileDependencies();<br />
</span><span style="color: #008080;">11</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000;">//</span><span style="color: #008000;">基于处理程序文件依赖项的时间戳设置&nbsp;Last-Modified&nbsp;HTTP&nbsp;标头。</span><span style="color: #008000;"><br />
</span><span style="color: #008080;">12</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;response.Cache.SetLastModifiedFromFileDependencies();<br />
</span><span style="color: #008080;">13</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;response.Cache.SetCacheability(HttpCacheability.Public);<br />
</span><span style="color: #008080;">14</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;response.Cache.SetMaxAge(</span><span style="color: #0000ff;">new</span><span style="color: #000000;">&nbsp;TimeSpan(</span><span style="color: #000000;">7</span><span style="color: #000000;">,&nbsp;</span><span style="color: #000000;">0</span><span style="color: #000000;">,&nbsp;</span><span style="color: #000000;">0</span><span style="color: #000000;">,&nbsp;</span><span style="color: #000000;">0</span><span style="color: #000000;">));<br />
</span><span style="color: #008080;">15</span>&nbsp;<span style="color: #000000;">&nbsp;&nbsp;&nbsp;&nbsp;response.Cache.SetSlidingExpiration(</span><span style="color: #0000ff;">true</span><span style="color: #000000;">);<br />
</span><span style="color: #008080;">16</span>&nbsp;<span style="color: #000000;">}<br />
</span><span style="color: #008080;">17</span>&nbsp;<span style="color: #0000ff;">#endregion</span></div>
<br />
<font color="#0000ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font>使用后的效果如下图所示:<br />
<img alt="" src="http://lionsky.net/blogs/ian/%E5%85%B6%E4%BB%96%E6%96%87%E4%BB%B6/client-caching-demo.jpg" border="0" height="77" width="623" /><br />
<br />
上图所使用的工具是在IE下运行的<a href="http://lionsky.net/files/folders/admin/entry33823.aspx">HttpWatchPro</a>,在Firefox下可以使用<a target="_blank" href="https://addons.mozilla.org/en-US/firefox/addon/1843">FireBug</a>+<a target="_blank" href="https://addons.mozilla.org/en-US/firefox/addon/5369">YSlow</a>进行测试.<br />
YSlow是建立在FireBug基础上运行的一个小工具,它可以对你的网页进行分析为什么缓存,并给出评分和缓慢的原因.这个工具来自Yahoo的研发团队,所以规则也是Yahoo制定的.<br />
<h1>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 结论</h1>
<font color="#0000ff">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font>我们已经看了如何使用客户端缓存减少带宽和计算的方法,如前所述,如果能正确合理的利用各种不同的缓存,他们会给你带来很多的好处.我希望本文已为你当下或将来基于Web的项目提供了精神食粮，并正确地在底层利用Last-Modified和ETag响应头去优化你的项目。&nbsp;<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
<br /><p><a target="_blank" href="http://idoall.org/blogs/ian/archive/2007/08/12/301-302.aspx" mce_href="http://www.cnblogs.com/blogs/ian/archive/2007/08/12/301-302.aspx"></a></p><p>参考资料:</p><p><a href="http://idoall.org:81/uchome/link.php?url=http://idoall.org%2Fblogs%2Fian%2Farchive%2F2007%2F08%2F12%2F301-302.aspx" target="_blank"> 			    </a><a href="http://idoall.org:81/uchome/link.php?url=http://idoall.org%3A81%2Fuchome%2Fspace.php%3Fuid%3D1%26amp%3Bdo%3Dblog%26amp%3Bid%3D8">301永久重定向实现方式及302重定向</a> </p><a href="http://idoall.org:81/uchome/link.php?url=http://idoall.org%3A81%2Fuchome%2Fspace.php%3Fuid%3D1%26amp%3Bdo%3Dblog%26amp%3Bid%3D9">理解ASP.NET与客户端缓存之HTTP协议</a> <p>&nbsp;</p>
<a>如何利用客户端缓存对网站进行优化? </a><img src="http://www.cnblogs.com/lion.net/aggbug/904717.html?type=1" width="1" height="1" alt=""/><p>评论: 29　<a href="http://www.cnblogs.com/lion.net/archive/2007/09/24/904717.html#pagedcomment" target="_blank">查看评论</a>　<a href="http://www.cnblogs.com/lion.net/archive/2007/09/24/904717.html#commentform" target="_blank">发表评论</a></p><hr/><p>最新新闻：<br/>· <a href="http://news.cnblogs.com/n/56793/" target="_blank">知名扩展 Firebug 的简化版登陆 Chrome</a><span style="color:gray">(2010-02-09 22:59)</span><br/>· <a href="http://news.cnblogs.com/n/56792/" target="_blank">Google 悄悄地启用 1e100.net，打枪地不要</a><span style="color:gray">(2010-02-09 22:57)</span><br/>· <a href="http://news.cnblogs.com/n/56791/" target="_blank">从 Google 代码库找到的好东西</a><span style="color:gray">(2010-02-09 22:46)</span><br/>· <a href="http://news.cnblogs.com/n/56789/" target="_blank">苹果在线商店临时关闭 或将推新Macbook</a><span style="color:gray">(2010-02-09 22:39)</span><br/>· <a href="http://news.cnblogs.com/n/56788/" target="_blank">豆瓣网推出豆瓣电台iPhone客户端</a><span style="color:gray">(2010-02-09 21:51)</span><br/></p><p>编辑推荐：<a href="http://news.cnblogs.com/n/56782/" target="_blank">2010年2月编程语言排行榜</a><br/></p><p>网站导航：<a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/" target="_blank">个人主页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/group/" target="_blank">小组</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://kb.cnblogs.com" target="_blank">知识库</a></p>]]></description></item><item><title>如何解析被压缩过的Js文件？eval(function(p,a,c,k,e,d){.....,{}))</title><link>http://www.cnblogs.com/lion.net/archive/2007/09/12/891055.html</link><dc:creator>Lion</dc:creator><author>Lion</author><pubDate>Wed, 12 Sep 2007 10:41:00 GMT</pubDate><guid>http://www.cnblogs.com/lion.net/archive/2007/09/12/891055.html</guid><description><![CDATA[<p>阅读: 4420 评论: 10 作者: <a href="http://www.cnblogs.com/lion.net/" target="_blank">Lion</a> 发表于 2007-09-12 18:41 <a href="http://www.cnblogs.com/lion.net/archive/2007/09/12/891055.html" target="_blank">原文链接</a></p><p>随着ajax的流行，大家一下子明白过来，原来js能够完成这么强大的功能，然后就是JS代码原来越复杂，js文件体积越来越大，同样也增加了安全隐患。</p>
<p>现在网上比较普遍的流行一些代码混淆和代码压缩工具: <br />
</p>
<p><a href="http://editor.lionsky.net/JSConfusionWebDemo/default.aspx">JSConfusion</a> &nbsp;&nbsp; 代码混淆工具，本人做的<img src="http://idoall.org/emoticons/emotion-2.gif" alt="Big Smile" /><a href="http://editor.lionsky.net/JSConfusionWebDemo/default.aspx" target="_blank"><br />
</a></p>
<p><a href="http://javascriptcompressor.com/">Javascript compressor</a>&nbsp; 代码压缩工具，提供了一种特有的压缩算法对JS的代码进行减肥,也是我看到较早的一个工具，现在经常和JSConfusion结合去使用（当然是先混淆后压缩） <br />
</p>
<p><a href="http://www.moralsoft.cn/WebFrame/CwmPage/CwmPage.htm?fc=JSObfuscator" target="_blank">JSObfuscator</a>&nbsp;&nbsp;集混淆/压缩一体的工具，虽然功能比较多，但在压缩的时候效果不是很好，经过我测试会有时压缩过的代码不能运行</p>
<p>这些是见过的比较好的几个工具，如果你还见过哪些不错功能类似的工具,可以在后面补充~~~~&nbsp;</p>
<p>大家应该都知道这样一个理论:加密可以反加密,而混淆却无法反混淆.</p>
<p>混
淆也可以叫颠倒是非、混淆黑白，无非就是去掉缩进、空格、空行和注释，改表代码中的非保留字为简单的字母、符号、乱码什么的，这样做只是为了加大代码的阅
读难度，提高阅读成本，所以反混淆只有根据你对JS的了解程度去进行变量/方法/属性/类的替换。当然代码少你到是可以这样做，如果代码很多(可以看这个
混淆后的<a href="http://editor.lionsky.net/" target="_blank">项目</a>)，你就会知道什么叫 "<a href="http://idoall.org/blogs/ian/archive/2007/09/12/21791.aspx" target="_blank">生气、愤怒、疯狂、哭笑不得</a>"<br />
</p>
<p>上面为基础知识，下面进行正题：<br />
</p>
<p>alert("Welcome idoall.org");</p>
<p>被压缩过以后是下面的样子:</p>
<p>eval(function(p,a,c,k,e,d){e=function(c){return
c};if(!''.replace(/^/,String)){while(c--)d[ c]=k[
c]||c;k=[function(e){return d[&nbsp;
e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[ c])p=p.replace(new
RegExp('\\b'+e(c)+'\\b','g'),k[ c]);return p}('3("2
1.0");',4,4,'org|idoall|Welcome|alert'.split('|'),0,{}))<br />
</p>
<p>那么我们如何从压缩过的代码中提取出原文？</p>
<p>不管她会压缩混淆成什么样子，最终都是要被浏览器认可，解析，执行的。我们可以跟踪代码的运行，会发现最关键的位置在这里.....p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k<img src="http://idoall.org/emoticons/emotion-44.gif" alt="Coffee" />);return p</p>
这里的变量 p 就是用来保存最终后的代码，我们可以在返回 p 的前面将值输出,就会得到alert("Welcome idoall.org");<br />
<br />
本文的目的是回答一位网友的<a target="_blank" href="http://www.cnblogs.com/dxxhh/archive/2007/09/11/889874.html">问题</a>,顺便提供相关的思路，有助于大家的思考<br />
<img src="http://www.cnblogs.com/lion.net/aggbug/891055.html?type=1" width="1" height="1" alt=""/><p>评论: 10　<a href="http://www.cnblogs.com/lion.net/archive/2007/09/12/891055.html#pagedcomment" target="_blank">查看评论</a>　<a href="http://www.cnblogs.com/lion.net/archive/2007/09/12/891055.html#commentform" target="_blank">发表评论</a></p><hr/><p>最新新闻：<br/>· <a href="http://news.cnblogs.com/n/56793/" target="_blank">知名扩展 Firebug 的简化版登陆 Chrome</a><span style="color:gray">(2010-02-09 22:59)</span><br/>· <a href="http://news.cnblogs.com/n/56792/" target="_blank">Google 悄悄地启用 1e100.net，打枪地不要</a><span style="color:gray">(2010-02-09 22:57)</span><br/>· <a href="http://news.cnblogs.com/n/56791/" target="_blank">从 Google 代码库找到的好东西</a><span style="color:gray">(2010-02-09 22:46)</span><br/>· <a href="http://news.cnblogs.com/n/56789/" target="_blank">苹果在线商店临时关闭 或将推新Macbook</a><span style="color:gray">(2010-02-09 22:39)</span><br/>· <a href="http://news.cnblogs.com/n/56788/" target="_blank">豆瓣网推出豆瓣电台iPhone客户端</a><span style="color:gray">(2010-02-09 21:51)</span><br/></p><p>编辑推荐：<a href="http://news.cnblogs.com/n/56782/" target="_blank">2010年2月编程语言排行榜</a><br/></p><p>网站导航：<a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/" target="_blank">个人主页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/group/" target="_blank">小组</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://kb.cnblogs.com" target="_blank">知识库</a></p>]]></description></item><item><title>Web在线编辑器WebHtmlEditor 1.7.2006.0420 Release提供下载,免费试用</title><link>http://www.cnblogs.com/lion.net/archive/2006/10/30/544137.html</link><dc:creator>Lion</dc:creator><author>Lion</author><pubDate>Mon, 30 Oct 2006 01:27:00 GMT</pubDate><guid>http://www.cnblogs.com/lion.net/archive/2006/10/30/544137.html</guid><description><![CDATA[<p>阅读: 3717 评论: 22 作者: <a href="http://www.cnblogs.com/lion.net/" target="_blank">Lion</a> 发表于 2006-10-30 09:27 <a href="http://www.cnblogs.com/lion.net/archive/2006/10/30/544137.html" target="_blank">原文链接</a></p><div class=Announce>为什么要使用WebHtmlEditor，因为她除了具有前台的调用功能外，还具有很强的后台管理功能，能够对编辑器多种功能进行各种有效的自定义，具体如下： <br></div>
<div class=List>
<dl>
<dt><font color=#ff0000 size=3>WebHtmlEditor 1.7.2006.0420 Release 将同时支持.NET Framework v2.0和0.NET Framework v1.1<br><br></font><font color=black>本软体为共享软体(shareware)提供个人网站免费使用(只是偶尔会在很小的随机机率在编辑器上方提示未注册字样,并不影响功能使用)<br>这次做为共享软件发布，所以免费版本目前有两方面限制 <br>a)在 IE 下不提供SPAN + IFRAME 的弹出窗口，会使用 IE 的默认模态窗口替代 <br>b)运行在公网上时，随机会在编辑的上方出现两行文字提示未注册版本 <br>总体来说，在运行时的功能除了不会使用 SPAN+IFRAME 以外，其他全部功能都是开放的。 <br>WebHtmlEditor 1.7 Release 做为共享软件，用户有权力选择是否使用她。</font><font color=#000000> </font></font></font><br></span></font><br><font color=#ff0000>在线演示</font>：<br>DOTNET1.1: <a href="http://editor1.lionsky.net/">http://editor1.lionsky.net/<br></a>DOTNET2.0: <a href="http://editor.lionsky.net/">http://editor.lionsky.net/</a><br><font color=#ff0000>下载地址</font>：<br>&nbsp;<a href="http://www.lionsky.net/MyWebSite/DownSoft/index.aspx">http://www.lionsky.net/MyWebSite/DownSoft/index.aspx</a><br><br>WebHtmlEditor 1.7 主要新增加以下功能：<br><br><span style="COLOR: red">
<li><span style="COLOR: red">增加了远程上传图片功能<img src="http://editor.lionsky.net/lionsky_client/WebHtmlEditor/1_7_2006_1020/Theme/Office_Tinge/Images/ButtonImage/remoteupload.gif">,将其他网站上的图片粘贴到编辑器中,点击远程上传按钮,可以将图片上传到本地的文件夹中,并在图片上增加文字水印和图片水印。</span>
<li><span style="COLOR: red">增加了 UpLoadImagesAndInsert 属性，在上传图片时可以直接将上传的图片插入到编辑器的内容区域中。</span>
<li>增加了首行缩进距离设置，体现了编辑器中国本地化的特色。段落首行缩进二字是中文的普遍习惯,国外的网页编辑软件一般都不提供此功能。
<li>增加了 HorizontalAlign 属性，可以设置编辑器的水平对齐方式。
<li>对[　图片 | Flash | 多媒体 | 其他文件 | 模板文件　]增加了 UpLoad[　Images | Flash | Media | OtherFile | Templat　]NameSet 属性，在上传遇到同名文件时可以自定义命名或提示方式。
<li>对用户的友好体验进行优化，可以用鼠标的拖动来改变编辑区域的大小(<a class=lan href="http://editor.lionsky.net/app_Themes/Default/Images/Demo/View-DockEditor.gif" target=_blank><u><font color=#0000ff>图</font></u></a>)。
<li><span style="COLOR: red">对图片锚点功能进行了优化，对 Rectangle 和 Circle 锚点进行了改进，支持多浏览器(<a class=lan href="http://editor.lionsky.net/app_Themes/Default/Images/Demo/View-ImagesMap.gif" target=_blank><u><font color=#0000ff>图</font></u></a>)。</span>
<li>对编辑器的载入速度进行了优化,采用了 WebHtmlEditor 特有的 JS 框架对所有脚本进行重构。 <br></span><br></li>
</dt></dl></div>
<dt><img alt="" src="http://editor.lionsky.net/App_Themes/Default/Images/icon.gif" border=0>&nbsp;<font color=#0000ff>将远程的图片上传到本地</font>
<dd>将其他网站的图片复制到编辑器中,直接上传到本地的文件夹中。<br><br><img alt="" src="http://editor.lionsky.net/App_Themes/Default/Images/icon.gif" border=0>&nbsp;<font color=#0000ff>在 IE 下使用 SPAN + IFRAME 模拟弹出窗口</font>&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;可以完全跳过拦截弹出窗口的 IE 插件。
<dl>
<dt><img alt="" src="http://editor.lionsky.net/App_Themes/Default/Images/icon.gif" border=0>&nbsp;<font color=#0000ff>支持XHTML 1.0</font>
<dd>可以选择输出的内容完全符合 (W3C) 的 XHTML 标准。 </dd></dl>
<dl>
<dt><img alt="" src="http://editor.lionsky.net/App_Themes/Default/Images/icon.gif" border=0>&nbsp;<font color=#0000ff>多浏览器支持</font>
<dd>可以同时支持市场上的几个主流浏览器: IE 5.5+, Firefox 1.0+, Mozilla 1.3+, Netscape 7+ and Safari (1.3+)。 <br><img alt="" src="http://editor.lionsky.net/App_Themes/Default/Images/small-cross-browser-support.gif"></dd></dl>
<dl>
<dt><img alt="" src="http://editor.lionsky.net/App_Themes/Default/Images/icon.gif" border=0>&nbsp;<font color=#0000ff>多语言支持</font>
<dd>WebHtmlEditor以公开语言包的形式进行语言封装，并能够跟据用户的系统自动选择适合的语言，用户可以根据所在的不同区域自定义语言包。</dd></dl>
<dl>
<dt><img alt="" src="http://editor.lionsky.net/App_Themes/Default/Images/icon.gif" border=0>&nbsp;<font color=#0000ff>大量常用功能按钮</font>
<dd>WebHtmlEditor包含了日常所要用到所有的样式功能，如复制、剪切、粘贴、表格、图片、文件、字体、颜色等，并在不断的补充中。</dd></dl>
<dl>
<dt><img alt="" src="http://editor.lionsky.net/App_Themes/Default/Images/icon.gif" border=0>&nbsp;<font color=#0000ff>内附文件上传功能</font>
<dd>WebHtmlEditor内涉及的文件相关的功能中，如图片来源，Flash文件来源，媒体文件来源，其他类型文件来源等，都自带有从客户端直接上传到服务器端的功能。</dd></dl>
<dl>
<dt><img alt="" src="http://editor.lionsky.net/App_Themes/Default/Images/icon.gif" border=0><font color=#0000ff>&nbsp;同时多个编辑器支持</font>
<dd>可以在同一个表单Form里有多个WebHtmlEditor，也可以在同一页里有多个WebHtmlEditor。 </dd></dl>
<dl>
<dt><img alt="" src="http://editor.lionsky.net/App_Themes/Default/Images/icon.gif" border=0><font color=#0000ff>&nbsp;前台支持</font>
<dd>一般很多使用都把涉及HTML编辑功能的脚本程序都放在管理员的后台管理中进行，而如允许用户在线投稿的前台却不敢使用，怕的是恶意的脚本。WebHtmlEditor自带有一个解释函数，方便前台显示，根据不同的参数样式显示相应的HTML脚本，去除恶意脚本。 </dd></dl>
<dl>
<dt><img alt="" src="http://editor.lionsky.net/App_Themes/Default/Images/icon.gif" border=0>&nbsp;<font color=#0000ff>调用简单</font>
<dd>在编程开发时，可以像服务器端控件TextBox,Button一样，将WebHtmlEditor加入到工具箱，然后只要拖动到页面中就可以完成WebHtmlEditor的调用。 </dd></dl>
<dl>
<dt><img alt="" src="http://editor.lionsky.net/App_Themes/Default/Images/icon.gif" border=0>&nbsp;<font color=#0000ff>多种编辑模式</font>
<dd>WebHtmlEditor具有4种编辑模式，有：HTML代码模式、可视设计模式、预览模式，可以满足所有应用的需要。 </dd></dl>
<dl>
<dt><img alt="" src="http://editor.lionsky.net/App_Themes/Default/Images/icon.gif" border=0>&nbsp;<font color=#0000ff>完善的接口</font>
<dd>WebHtmlEditor作为一个强大的在线编辑模块，提供了完善的接口，满足更高级用户的需要，您可以通过接口实时控制或者获取编辑器的内容或者状态。 </dd></dl>
<dl>
<dt><img alt="" src="http://editor.lionsky.net/App_Themes/Default/Images/icon.gif" border=0>&nbsp;<font color=#0000ff>所见即所得</font>
<dd>即通过编辑器编辑的文字、图片等HTML标记输出到页面的效果和编辑时显示的效果一致，让使用者方便地对编辑的内容进行修改、排版等。 </dd></dl>
<dl>
<dt><img alt="" src="http://editor.lionsky.net/App_Themes/Default/Images/icon.gif" border=0>&nbsp;<font color=#0000ff>自动转换为HTML代码</font>
<dd>在编辑状态编辑的文字、图片等内容都在后台自动转换为可被浏览器识别的HTML标记语言，使用者更能在代码状态在对代码标记进行修改。 </dd></dl>
<dl>
<dt><img alt="" src="http://editor.lionsky.net/App_Themes/Default/Images/icon.gif" border=0>&nbsp;<font color=#0000ff>简单易用</font>
<dd>编辑器的编辑及使用方法与FrontPage、Dreamweaver等著名主页制作软件类似。无需任何HTML语法知识、儍瓜式的操作让即使没有主页制作经验的使用者也能快速上手。 </dd></dl>
<dl>
<dt><img alt="" src="http://editor.lionsky.net/App_Themes/Default/Images/icon.gif" border=0>&nbsp;<font color=#0000ff>方便快捷</font>
<dd>使用所见即所得的编辑器能快捷、方便地编辑出效果一流的图文效果，如果使用纯手工编写代码的方法编辑则需要浪费大量时间及精力。 <br><br></dd></dl><br><strong>如有任何关于的问题,请到到下面的地址中提问,谢谢合作!!!</strong><br><a class=lnk3 title="" href="http://bbs.lionsky.net/ShowThread.aspx?PostID=2057" target=_blank>WebHtmlEditor 1.7.2006.0420 Release 问题意见反馈 </a><br></dd>
<img src="http://www.cnblogs.com/lion.net/aggbug/544137.html?type=1" width="1" height="1" alt=""/><p>评论: 22　<a href="http://www.cnblogs.com/lion.net/archive/2006/10/30/544137.html#pagedcomment" target="_blank">查看评论</a>　<a href="http://www.cnblogs.com/lion.net/archive/2006/10/30/544137.html#commentform" target="_blank">发表评论</a></p><hr/><p>最新新闻：<br/>· <a href="http://news.cnblogs.com/n/56793/" target="_blank">知名扩展 Firebug 的简化版登陆 Chrome</a><span style="color:gray">(2010-02-09 22:59)</span><br/>· <a href="http://news.cnblogs.com/n/56792/" target="_blank">Google 悄悄地启用 1e100.net，打枪地不要</a><span style="color:gray">(2010-02-09 22:57)</span><br/>· <a href="http://news.cnblogs.com/n/56791/" target="_blank">从 Google 代码库找到的好东西</a><span style="color:gray">(2010-02-09 22:46)</span><br/>· <a href="http://news.cnblogs.com/n/56789/" target="_blank">苹果在线商店临时关闭 或将推新Macbook</a><span style="color:gray">(2010-02-09 22:39)</span><br/>· <a href="http://news.cnblogs.com/n/56788/" target="_blank">豆瓣网推出豆瓣电台iPhone客户端</a><span style="color:gray">(2010-02-09 21:51)</span><br/></p><p>编辑推荐：<a href="http://news.cnblogs.com/n/56782/" target="_blank">2010年2月编程语言排行榜</a><br/></p><p>网站导航：<a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/" target="_blank">个人主页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/group/" target="_blank">小组</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://kb.cnblogs.com" target="_blank">知识库</a></p>]]></description></item><item><title>应朋友要求，现将 WebHtmlEditor 1.5 and 1.6 中用到的 js 混淆器提供给大家使用</title><link>http://www.cnblogs.com/lion.net/archive/2006/02/27/338446.html</link><dc:creator>Lion</dc:creator><author>Lion</author><pubDate>Mon, 27 Feb 2006 01:20:00 GMT</pubDate><guid>http://www.cnblogs.com/lion.net/archive/2006/02/27/338446.html</guid><description><![CDATA[<p>阅读: 2588 评论: 16 作者: <a href="http://www.cnblogs.com/lion.net/" target="_blank">Lion</a> 发表于 2006-02-27 09:20 <a href="http://www.cnblogs.com/lion.net/archive/2006/02/27/338446.html" target="_blank">原文链接</a></p>这个混淆器只会放一段时间 <BR><A href="http://editor.lionsky.net/JSConfusionWebDemo/">http://editor.lionsky.net/JSConfusionWebDemo/</A> <BR><BR>相关链接： <BR><A href="http://www.cnblogs.com/lion.net/archive/2006/02/26/338322.html"><FONT color=#223355>Web在线编辑器WebHtmlEditor 1.6 Release提供下载(Support .NET Framework v2.0,Support .NET Framework v1.1) </FONT></A><img src="http://www.cnblogs.com/lion.net/aggbug/338446.html?type=1" width="1" height="1" alt=""/><p>评论: 16　<a href="http://www.cnblogs.com/lion.net/archive/2006/02/27/338446.html#pagedcomment" target="_blank">查看评论</a>　<a href="http://www.cnblogs.com/lion.net/archive/2006/02/27/338446.html#commentform" target="_blank">发表评论</a></p><hr/><p>最新新闻：<br/>· <a href="http://news.cnblogs.com/n/56793/" target="_blank">知名扩展 Firebug 的简化版登陆 Chrome</a><span style="color:gray">(2010-02-09 22:59)</span><br/>· <a href="http://news.cnblogs.com/n/56792/" target="_blank">Google 悄悄地启用 1e100.net，打枪地不要</a><span style="color:gray">(2010-02-09 22:57)</span><br/>· <a href="http://news.cnblogs.com/n/56791/" target="_blank">从 Google 代码库找到的好东西</a><span style="color:gray">(2010-02-09 22:46)</span><br/>· <a href="http://news.cnblogs.com/n/56789/" target="_blank">苹果在线商店临时关闭 或将推新Macbook</a><span style="color:gray">(2010-02-09 22:39)</span><br/>· <a href="http://news.cnblogs.com/n/56788/" target="_blank">豆瓣网推出豆瓣电台iPhone客户端</a><span style="color:gray">(2010-02-09 21:51)</span><br/></p><p>编辑推荐：<a href="http://news.cnblogs.com/n/56782/" target="_blank">2010年2月编程语言排行榜</a><br/></p><p>网站导航：<a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/" target="_blank">个人主页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/group/" target="_blank">小组</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://kb.cnblogs.com" target="_blank">知识库</a></p>]]></description></item><item><title>Web在线编辑器WebHtmlEditor 1.6 Release提供下载(Support .NET Framework v2.0,Support .NET Framework v1.1) </title><link>http://www.cnblogs.com/lion.net/archive/2006/02/26/338322.html</link><dc:creator>Lion</dc:creator><author>Lion</author><pubDate>Sun, 26 Feb 2006 14:41:00 GMT</pubDate><guid>http://www.cnblogs.com/lion.net/archive/2006/02/26/338322.html</guid><description><![CDATA[<p>阅读: 7597 评论: 36 作者: <a href="http://www.cnblogs.com/lion.net/" target="_blank">Lion</a> 发表于 2006-02-26 22:41 <a href="http://www.cnblogs.com/lion.net/archive/2006/02/26/338322.html" target="_blank">原文链接</a></p><DIV class=Announce>为什么要使用WebHtmlEditor，因为她除了具有前台的调用功能外，还具有很强的后台管理功能，能够对编辑器多种功能进行各种有效的自定义，具体如下： <BR></DIV>
<DIV class=List>
<DL>
<DT><FONT color=#ff0000 size=3>WebHtmlEditor 1.6将同时支持.NET Framework v2.0和.NET Framework v1.1<BR></FONT><BR><FONT color=#ff0000>在线演示</FONT>：<BR>DOTNET1.1: <A href="http://www.lionsky.net/Demo/WebHtmlEditor/1_6"><FONT color=#002c99>http://www.lionsky.net/Demo/WebHtmlEditor/1_6</FONT></A><BR>DOTNET2.0: <A href="http://editor.lionsky.net/"><FONT color=#002c99>http://editor.lionsky.net/</FONT></A><BR><FONT color=#ff0000>下载地址</FONT>：<BR>&nbsp;<A href="http://www.lionsky.net/MyWebSite/DownSoft/index.aspx"><FONT color=#002c99>http://www.lionsky.net/MyWebSite/DownSoft/index.aspx</FONT></A><BR><BR>WebHtmlEditor 1.6 主要新增加以下功能：<BR>
<LI><SPAN style="COLOR: red">增加了内置代码高亮显示功能。</SPAN><BR>
<LI><SPAN style="COLOR: red">增加了查看在编辑区域内容 Dom 的功能(<A class=lan href="http://editor.lionsky.net/app_Themes/Default/Images/Demo/View-Dom.gif" target=_blank><U><FONT color=#0000ff>图</FONT></U></A>)</SPAN>。<BR>
<LI><SPAN style="COLOR: red">增加了实时呈现在编辑区域的 Html 控件属性的功能(此功能需要注册)(<A class=lan href="http://editor.lionsky.net/app_Themes/Default/Images/Demo/View-Propertype.gif" target=_blank><U><FONT color=#0000ff>图</FONT></U></A>)</SPAN>。<BR><BR><BR><IMG alt="" src="http://editor.lionsky.net/App_Themes/Default/Images/icon.gif" border=0>&nbsp;<FONT color=#0000ff>在 IE 下使用 SPAN + IFRAME 模拟弹出窗口</FONT> </LI>
<DD>可以完全跳过拦截弹出窗口的 IE 插件。 </DD></DL>
<DL>
<DT><IMG alt="" src="http://editor.lionsky.net/App_Themes/Default/Images/icon.gif" border=0>&nbsp;<FONT color=#0000ff>支持XHTML 1.0</FONT> 
<DD>可以选择输出的内容完全符合 (W3C) 的 XHTML 标准。 </DD></DL>
<DL>
<DT><IMG alt="" src="http://editor.lionsky.net/App_Themes/Default/Images/icon.gif" border=0>&nbsp;<FONT color=#0000ff>多浏览器支持</FONT> 
<DD>可以同时支持市场上的几个主流浏览器: IE 5.5+, Firefox 1.0+, Mozilla 1.3+, Netscape 7+ and Safari (1.3+)。 <BR><IMG alt="" src="http://editor.lionsky.net/App_Themes/Default/Images/small-cross-browser-support.gif"></DD></DL>
<DL>
<DT><IMG alt="" src="http://editor.lionsky.net/App_Themes/Default/Images/icon.gif" border=0>&nbsp;<FONT color=#0000ff>多语言支持</FONT> 
<DD>WebHtmlEditor以公开语言包的形式进行语言封装，并能够跟据用户的系统自动选择适合的语言，用户可以根据所在的不同区域自定义语言包。</DD></DL>
<DL>
<DT><IMG alt="" src="http://editor.lionsky.net/App_Themes/Default/Images/icon.gif" border=0>&nbsp;<FONT color=#0000ff>大量常用功能按钮</FONT> 
<DD>WebHtmlEditor包含了日常所要用到所有的样式功能，如复制、剪切、粘贴、表格、图片、文件、字体、颜色等，并在不断的补充中。</DD></DL>
<DL>
<DT><IMG alt="" src="http://editor.lionsky.net/App_Themes/Default/Images/icon.gif" border=0>&nbsp;<FONT color=#0000ff>内附文件上传功能</FONT> 
<DD>WebHtmlEditor内涉及的文件相关的功能中，如图片来源，Flash文件来源，媒体文件来源，其他类型文件来源等，都自带有从客户端直接上传到服务器端的功能。</DD></DL>
<DL>
<DT><IMG alt="" src="http://editor.lionsky.net/App_Themes/Default/Images/icon.gif" border=0><FONT color=#0000ff>&nbsp;同时多个编辑器支持</FONT> 
<DD>可以在同一个表单Form里有多个WebHtmlEditor，也可以在同一页里有多个WebHtmlEditor。 </DD></DL>
<DL>
<DT><IMG alt="" src="http://editor.lionsky.net/App_Themes/Default/Images/icon.gif" border=0><FONT color=#0000ff>&nbsp;前台支持</FONT> 
<DD>一般很多使用都把涉及HTML编辑功能的脚本程序都放在管理员的后台管理中进行，而如允许用户在线投稿的前台却不敢使用，怕的是恶意的脚本。WebHtmlEditor自带有一个解释函数，方便前台显示，根据不同的参数样式显示相应的HTML脚本，去除恶意脚本。 </DD></DL>
<DL>
<DT><IMG alt="" src="http://editor.lionsky.net/App_Themes/Default/Images/icon.gif" border=0>&nbsp;<FONT color=#0000ff>调用简单</FONT> 
<DD>在编程开发时，可以像服务器端控件TextBox,Button一样，将WebHtmlEditor加入到工具箱，然后只要拖动到页面中就可以完成WebHtmlEditor的调用。 </DD></DL>
<DL>
<DT><IMG alt="" src="http://editor.lionsky.net/App_Themes/Default/Images/icon.gif" border=0>&nbsp;<FONT color=#0000ff>多种编辑模式</FONT> 
<DD>WebHtmlEditor具有4种编辑模式，有：HTML代码模式、可视设计模式、预览模式，可以满足所有应用的需要。 </DD></DL>
<DL>
<DT><IMG alt="" src="http://editor.lionsky.net/App_Themes/Default/Images/icon.gif" border=0>&nbsp;<FONT color=#0000ff>完善的接口</FONT> 
<DD>WebHtmlEditor作为一个强大的在线编辑模块，提供了完善的接口，满足更高级用户的需要，您可以通过接口实时控制或者获取编辑器的内容或者状态。 </DD></DL>
<DL>
<DT><IMG alt="" src="http://editor.lionsky.net/App_Themes/Default/Images/icon.gif" border=0>&nbsp;<FONT color=#0000ff>所见即所得</FONT> 
<DD>即通过编辑器编辑的文字、图片等HTML标记输出到页面的效果和编辑时显示的效果一致，让使用者方便地对编辑的内容进行修改、排版等。 </DD></DL>
<DL>
<DT><IMG alt="" src="http://editor.lionsky.net/App_Themes/Default/Images/icon.gif" border=0>&nbsp;<FONT color=#0000ff>自动转换为HTML代码</FONT> 
<DD>在编辑状态编辑的文字、图片等内容都在后台自动转换为可被浏览器识别的HTML标记语言，使用者更能在代码状态在对代码标记进行修改。 </DD></DL>
<DL>
<DT><IMG alt="" src="http://editor.lionsky.net/App_Themes/Default/Images/icon.gif" border=0>&nbsp;<FONT color=#0000ff>简单易用</FONT> 
<DD>编辑器的编辑及使用方法与FrontPage、Dreamweaver等著名主页制作软件类似。无需任何HTML语法知识、儍瓜式的操作让即使没有主页制作经验的使用者也能快速上手。 </DD></DL>
<DL>
<DT><IMG alt="" src="http://editor.lionsky.net/App_Themes/Default/Images/icon.gif" border=0>&nbsp;<FONT color=#0000ff>方便快捷</FONT> 
<DD>使用所见即所得的编辑器能快捷、方便地编辑出效果一流的图文效果，如果使用纯手工编写代码的方法编辑则需要浪费大量时间及精力。 </DD></DL></DIV><BR><FONT color=#0000ff>这次做为共享软件发布，所以免费版本目前有两方面限制 <BR>a)在 IE 下不提供SPAN + IFRAME 的弹出窗口，会使用 IE 的默认模式窗口替代 <BR>b)运行在公网上时，随机会在编辑的上方出现两行文字提示未注册版本 <BR><BR>总体来说，在运行时的功能除了不会使用 SPAN+IFRAME 以外，其他全部功能都是开放的。 <BR>WebHtmlEditor 1.6 Release 做为共享软件，用户有权力选择是否使用她。</FONT><img src="http://www.cnblogs.com/lion.net/aggbug/338322.html?type=1" width="1" height="1" alt=""/><p>评论: 36　<a href="http://www.cnblogs.com/lion.net/archive/2006/02/26/338322.html#pagedcomment" target="_blank">查看评论</a>　<a href="http://www.cnblogs.com/lion.net/archive/2006/02/26/338322.html#commentform" target="_blank">发表评论</a></p><hr/><p>最新新闻：<br/>· <a href="http://news.cnblogs.com/n/56793/" target="_blank">知名扩展 Firebug 的简化版登陆 Chrome</a><span style="color:gray">(2010-02-09 22:59)</span><br/>· <a href="http://news.cnblogs.com/n/56792/" target="_blank">Google 悄悄地启用 1e100.net，打枪地不要</a><span style="color:gray">(2010-02-09 22:57)</span><br/>· <a href="http://news.cnblogs.com/n/56791/" target="_blank">从 Google 代码库找到的好东西</a><span style="color:gray">(2010-02-09 22:46)</span><br/>· <a href="http://news.cnblogs.com/n/56789/" target="_blank">苹果在线商店临时关闭 或将推新Macbook</a><span style="color:gray">(2010-02-09 22:39)</span><br/>· <a href="http://news.cnblogs.com/n/56788/" target="_blank">豆瓣网推出豆瓣电台iPhone客户端</a><span style="color:gray">(2010-02-09 21:51)</span><br/></p><p>编辑推荐：<a href="http://news.cnblogs.com/n/56782/" target="_blank">2010年2月编程语言排行榜</a><br/></p><p>网站导航：<a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/" target="_blank">个人主页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/group/" target="_blank">小组</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://kb.cnblogs.com" target="_blank">知识库</a></p>]]></description></item><item><title>DOTNET2.0 的编辑器：WebHtmlEditor 1.5 Release提供在线演示和下载</title><link>http://www.cnblogs.com/lion.net/archive/2005/12/16/298210.html</link><dc:creator>Lion</dc:creator><author>Lion</author><pubDate>Fri, 16 Dec 2005 00:47:00 GMT</pubDate><guid>http://www.cnblogs.com/lion.net/archive/2005/12/16/298210.html</guid><description><![CDATA[<p>阅读: 2872 评论: 16 作者: <a href="http://www.cnblogs.com/lion.net/" target="_blank">Lion</a> 发表于 2005-12-16 08:47 <a href="http://www.cnblogs.com/lion.net/archive/2005/12/16/298210.html" target="_blank">原文链接</a></p><SPAN style="COLOR: red">什么是 WebHtmlEditor　？</SPAN> 
<DIV></DIV>
<DIV class=ThisEditor>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;她是一个网页的在线文本编辑器,她能够在网页上实现许多桌面编辑软件（如：Word）所具有的强大可视编辑功能；她是一个真正的绿色软件，不需要在计算机上安装任何的客户端软件，允许无商业目的个人用户免费使用。 如在商业上使用请与我联系。<BR><SPAN style="COLOR: red">为什么要使用WebHtmlEditor　？<BR></SPAN>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;因为她除了具有前台的调用功能外，还具有很强的后台管理功能，能够对编辑器多种功能进行各种有效的自定义。<BR><BR>
<DIV class=List>
<DL>
<DT><IMG alt="" src="http://editor.lionsky.net/App_Themes/Default/Images/icon.gif" border=0>&nbsp;<FONT color=#0000ff>在 IE 下使用 SPAN + IFRAME 模拟弹出窗口</FONT> 
<DD>可以完全跳过拦截弹出窗口的 IE 插件。 </DD></DL>
<DL>
<DT><IMG alt="" src="http://editor.lionsky.net/App_Themes/Default/Images/icon.gif" border=0>&nbsp;<FONT color=#0000ff>支持XHTML 1.0</FONT> 
<DD>可以选择输出的内容完全符合 (W3C) 的 XHTML 标准。 </DD></DL>
<DL>
<DT><IMG alt="" src="http://editor.lionsky.net/App_Themes/Default/Images/icon.gif" border=0>&nbsp;<FONT color=#0000ff>多浏览器支持</FONT> 
<DD>可以同时支持市场上的几个主流浏览器: IE 5.5+, Firefox 1.0+, Mozilla 1.3+, Netscape 7+ and Safari (1.3+)。 <BR><IMG alt="" src="http://editor.lionsky.net/App_Themes/Default/Images/small-cross-browser-support.gif"></DD></DL>
<DL>
<DT><IMG alt="" src="http://editor.lionsky.net/App_Themes/Default/Images/icon.gif" border=0>&nbsp;<FONT color=#0000ff>多语言支持</FONT> 
<DD>WebHtmlEditor以公开语言包的形式进行语言封装，并能够跟据用户的系统自动选择适合的语言，用户可以根据所在的不同区域自定义语言包。</DD></DL>
<DL>
<DT><IMG alt="" src="http://editor.lionsky.net/App_Themes/Default/Images/icon.gif" border=0>&nbsp;<FONT color=#0000ff>大量常用功能按钮</FONT> 
<DD>WebHtmlEditor包含了日常所要用到所有的样式功能，如复制、剪切、粘贴、表格、图片、文件、字体、颜色等，并在不断的补充中。</DD></DL>
<DL>
<DT><IMG alt="" src="http://editor.lionsky.net/App_Themes/Default/Images/icon.gif" border=0>&nbsp;<FONT color=#0000ff>内附文件上传功能</FONT> 
<DD>WebHtmlEditor内涉及的文件相关的功能中，如图片来源，Flash文件来源，媒体文件来源，其他类型文件来源等，都自带有从客户端直接上传到服务器端的功能。</DD></DL>
<DL>
<DT><IMG alt="" src="http://editor.lionsky.net/App_Themes/Default/Images/icon.gif" border=0><FONT color=#0000ff>&nbsp;同时多个编辑器支持</FONT> 
<DD>可以在同一个表单Form里有多个WebHtmlEditor，也可以在同一页里有多个WebHtmlEditor。 </DD></DL>
<DL>
<DT><IMG alt="" src="http://editor.lionsky.net/App_Themes/Default/Images/icon.gif" border=0><FONT color=#0000ff>&nbsp;前台支持</FONT> 
<DD>一般很多使用都把涉及HTML编辑功能的脚本程序都放在管理员的后台管理中进行，而如允许用户在线投稿的前台却不敢使用，怕的是恶意的脚本。WebHtmlEditor自带有一个解释函数，方便前台显示，根据不同的参数样式显示相应的HTML脚本，去除恶意脚本。 </DD></DL>
<DL>
<DT><IMG alt="" src="http://editor.lionsky.net/App_Themes/Default/Images/icon.gif" border=0>&nbsp;<FONT color=#0000ff>调用简单</FONT> 
<DD>在编程开发时，可以像服务器端控件TextBox,Button一样，将WebHtmlEditor加入到工具箱，然后只要拖动到页面中就可以完成WebHtmlEditor的调用。 </DD></DL>
<DL>
<DT><IMG alt="" src="http://editor.lionsky.net/App_Themes/Default/Images/icon.gif" border=0>&nbsp;<FONT color=#0000ff>多种编辑模式</FONT> 
<DD>WebHtmlEditor具有4种编辑模式，有：HTML代码模式、可视设计模式、预览模式，可以满足所有应用的需要。 </DD></DL>
<DL>
<DT><IMG alt="" src="http://editor.lionsky.net/App_Themes/Default/Images/icon.gif" border=0>&nbsp;<FONT color=#0000ff>完善的接口</FONT> 
<DD>WebHtmlEditor作为一个强大的在线编辑模块，提供了完善的接口，满足更高级用户的需要，您可以通过接口实时控制或者获取编辑器的内容或者状态。 </DD></DL>
<DL>
<DT><IMG alt="" src="http://editor.lionsky.net/App_Themes/Default/Images/icon.gif" border=0>&nbsp;<FONT color=#0000ff>所见即所得</FONT> 
<DD>即通过编辑器编辑的文字、图片等HTML标记输出到页面的效果和编辑时显示的效果一致，让使用者方便地对编辑的内容进行修改、排版等。 </DD></DL>
<DL>
<DT><IMG alt="" src="http://editor.lionsky.net/App_Themes/Default/Images/icon.gif" border=0>&nbsp;<FONT color=#0000ff>自动转换为HTML代码</FONT> 
<DD>在编辑状态编辑的文字、图片等内容都在后台自动转换为可被浏览器识别的HTML标记语言，使用者更能在代码状态在对代码标记进行修改。 </DD></DL>
<DL>
<DT><IMG alt="" src="http://editor.lionsky.net/App_Themes/Default/Images/icon.gif" border=0>&nbsp;<FONT color=#0000ff>简单易用</FONT> 
<DD>编辑器的编辑及使用方法与FrontPage、Dreamweaver等著名主页制作软件类似。无需任何HTML语法知识、儍瓜式的操作让即使没有主页制作经验的使用者也能快速上手。 </DD></DL>
<DL>
<DT><IMG alt="" src="http://editor.lionsky.net/App_Themes/Default/Images/icon.gif" border=0>&nbsp;<FONT color=#0000ff>方便快捷</FONT> 
<DD>使用所见即所得的编辑器能快捷、方便地编辑出效果一流的图文效果，如果使用纯手工编写代码的方法编辑则需要浪费大量时间及精力。 </DD></DL></DIV><BR><FONT color=#ff0000>在线演示</FONT>：<A href="http://editor.lionsky.net/">http://editor.lionsky.net/</A><BR><FONT color=#ff0000>下载地址</FONT>：<A href="http://www.lionsky.net/MyWebSite/DownSoft/index.aspx">http://www.lionsky.net/MyWebSite/DownSoft/index.aspx</A> <BR></DIV><img src="http://www.cnblogs.com/lion.net/aggbug/298210.html?type=1" width="1" height="1" alt=""/><p>评论: 16　<a href="http://www.cnblogs.com/lion.net/archive/2005/12/16/298210.html#pagedcomment" target="_blank">查看评论</a>　<a href="http://www.cnblogs.com/lion.net/archive/2005/12/16/298210.html#commentform" target="_blank">发表评论</a></p><hr/><p>最新新闻：<br/>· <a href="http://news.cnblogs.com/n/56793/" target="_blank">知名扩展 Firebug 的简化版登陆 Chrome</a><span style="color:gray">(2010-02-09 22:59)</span><br/>· <a href="http://news.cnblogs.com/n/56792/" target="_blank">Google 悄悄地启用 1e100.net，打枪地不要</a><span style="color:gray">(2010-02-09 22:57)</span><br/>· <a href="http://news.cnblogs.com/n/56791/" target="_blank">从 Google 代码库找到的好东西</a><span style="color:gray">(2010-02-09 22:46)</span><br/>· <a href="http://news.cnblogs.com/n/56789/" target="_blank">苹果在线商店临时关闭 或将推新Macbook</a><span style="color:gray">(2010-02-09 22:39)</span><br/>· <a href="http://news.cnblogs.com/n/56788/" target="_blank">豆瓣网推出豆瓣电台iPhone客户端</a><span style="color:gray">(2010-02-09 21:51)</span><br/></p><p>编辑推荐：<a href="http://news.cnblogs.com/n/56782/" target="_blank">2010年2月编程语言排行榜</a><br/></p><p>网站导航：<a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/" target="_blank">个人主页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/group/" target="_blank">小组</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://kb.cnblogs.com" target="_blank">知识库</a></p>]]></description></item><item><title>WebHtmlEditor Version 1.5.2004.729 Beta1 发布测试</title><link>http://www.cnblogs.com/lion.net/archive/2005/08/08/209652.html</link><dc:creator>Lion</dc:creator><author>Lion</author><pubDate>Mon, 08 Aug 2005 00:22:00 GMT</pubDate><guid>http://www.cnblogs.com/lion.net/archive/2005/08/08/209652.html</guid><description><![CDATA[<p>阅读: 3701 评论: 23 作者: <a href="http://www.cnblogs.com/lion.net/" target="_blank">Lion</a> 发表于 2005-08-08 08:22 <a href="http://www.cnblogs.com/lion.net/archive/2005/08/08/209652.html" target="_blank">原文链接</a></p><P align=center><IMG height=45 src="http://www.lionsky.net/Images/htmleditor_about.gif" width=310 border=0> </P>
<P>[<A href="http://www.lionsky.net/Demo/WebHtmlEditor/1_5/WebUI.htm">最新功能预览</A>]，如果您想加入其他的功能可以以外挂的形式集成到 WebHtmlEditor 中[演示：<A href="http://www.lionsky.net/Demo/WebHtmlEditor/1_5/I_CodeHighlighter.aspx">将CodeHighlighter以外挂的形式集成到 WebHtmlEditor</A>] <BR><BR>如果您对 WebHtmlEditor 的研发工作感兴趣，可以 <A href="mailto:lion-a@sohu.com">给我邮件</A>&nbsp;或到 <A href="http://www.cnblogs.com/ShowForum.aspx?ForumID=25">WebHtmlEditor官方论坛</A>&nbsp;中给我留言。 <BR><BR>什么是 WebHtmlEditor? <BR>&nbsp;&nbsp; 她是一个网页的在线文本编辑器,她能够在网页上实现许多桌面编辑软件（如：Word）所具有的强大可视编辑功能；她是一个真正的绿色软件，不需要在计算机上安装任何的客户端软件；并且她是完全开放源代码的，允许无商业目的个人用户免费使用。 如在商业上使用请与我联系。 </P>
<P>资源： <BR>下载目录：<A href="http://www.lionsky.net/">http://www.lionsky.net</A> <BR><BR>这个软件的许可协议为GPL。 <BR>详细请看GPL.txt或访问<A href="http://www.opensource.org/licenses/gpl-license.php">http://www.opensource.org/licenses/gpl-license.php</A> <BR><BR>下载地址:[WebHtmlEditor Version 1.5.2004.729 Beta1&nbsp;Demo<FONT color=#8cacfc> </FONT><FONT color=#000000>] <BR></FONT><A href="http://www.lionsky.net/MyWebsite/downsoft/index.aspx"><FONT color=#1d58d1><U>http://www.lionsky.net/MyWebsite/downsoft/index.aspx</U></FONT></A> <BR><FONT color=#000000>在线演示： <BR></FONT><A href="http://www.lionsky.net/Demo/WebHtmlEditor/1_5/Default.htm">http://www.lionsky.net/Demo/WebHtmlEditor/1_5/Default.htm</A> <BR><BR><BR>最 新 更 新 </P>
<P><IMG height=10 src="http://www.lionsky.net/Demo/WebHtmlEditor/1_5/images/icon.gif" width=10 border=0>&nbsp;[2005-07-29] WebHtmlEditor Version 1.5.2004.729 Beta1 </P>
<UL>
<LI>增加了可以限制指定的<SPAN class=style1><FONT color=#ff0000>上传文件夹大小</FONT></SPAN>的属性(<A class=lan href="http://www.lionsky.net/Demo/WebHtmlEditor/1_5/Images/Demo/023.gif" target=_blank><U><FONT color=#0000ff>图1</FONT></U></A>)，不管是Flash/Image/File/Media，如果上传文件的大小超过限制大小则不允许上传(默认10M)，感谢 二十四画生 的建议 
<LI>增加了语言设置功能，可以像DNN一样配置程序使用何种语言（Language属性。注：由于WebHtmlEditor采用了不同的处理方式，此属性只有在设计时进行设置才有效，会在正式版本时修复此问题）。 
<LI>增加了在上传管理Flash/Image/File/Media文件时，可以<SPAN class=style1><FONT color=#ff0000>显示允许上传的文件类型</FONT></SPAN>(<A class=lan href="http://www.lionsky.net/Demo/WebHtmlEditor/1_5/Images/Demo/023.gif" target=_blank><U><FONT color=#0000ff>图1</FONT></U></A>)功能 
<LI>增加了在上传管理Flash/Image/File/Media文件时，可以定义上传以后文件名规则的功能． 
<LI>增加了上传Flash/Image/File/Media文件时，加入了"....文件上传中....请稍候...."的友好提示。 
<LI>加强了选择&#8220;表情图片&#8221;的功能(<A class=lan href="http://www.lionsky.net/Demo/WebHtmlEditor/1_5/Images/Demo/022.gif" target=_blank><U><FONT color=#0000ff>图1</FONT></U></A>)，感谢 宝玉 提供的代码参考和建议，感谢 嘻嘻哈哈 提供的表情图片。 
<LI>加强了<SPAN class=style1><FONT color=#ff0000>段落样式/字体/字号/推进</FONT></SPAN>的运行时可视化功能 
<LI>去掉了HtmlToXHTML属性，改为直接用XHTML属性获取转换后的值 
<LI class=style1>优化了WebHtmlEditor的载入速度 
<LI>美化了WebHtmlEditor的图片 
<LI>修正了在图片、文件、媒体、FLASH文件管理时，没有建立指定的上传文件夹，点击上传出错的问题。感谢 lion互动网络的初心者和weilai 的反馈 
<LI>修正了上传文件，选择的扩展名格式错误和大小超过限制后出现js错误的问题，感谢 CSDN 的 ycc2008(皮皮) 的热心反馈 
<LI>修正了<SPAN class=style1><FONT color=#ff0000>撤消／删除功能不稳定</FONT></SPAN>的问题 
<LI>修正了不可以在ascx控件中使用的问题。 
<LI>修正了不可以在代码中添加工具栏的问题，感谢 二十四画生 的反馈 。 
<LI>修正了在插入图片时，如果<SPAN class=style1><FONT color=#ff0000>输入远程的图片URL</FONT></SPAN>会提示不允许的问题，感谢 二十四画生 的反馈 。 </LI></UL>
<P><IMG height=10 src="http://www.lionsky.net/Demo/WebHtmlEditor/1_5/images/icon.gif" width=10 border=0> [2004-11-11] WebHtmlEditor Version 1.0.2004.1111 </P>
<UL>
<LI>从这个版本开始HtmlEditor正式更名为WebHtmlEditor，最新版本为 1.0。 
<LI>去掉了Style.xml和ToolBar.xml的配置文件 
<LI>修正了可以远程上传文件，但是提交以后取不到值的问题。 
<LI>增加了在设计状态时所有的工具栏和按钮可以<SPAN style="COLOR: red">动态配置</SPAN>。动态设定自定义的工具栏，并在工具栏添加自定义的按钮(<A class=lan href="http://www.lionsky.net/Demo/WebHtmlEditor/1_5/Images/Demo/001.gif" target=_blank><U><FONT color=#0000ff>图1</FONT></U></A>,<A class=lan href="http://www.lionsky.net/Demo/WebHtmlEditor/1_5/Images/Demo/002.gif" target=_blank><U><FONT color=#0000ff>图2</FONT></U></A>,<A class=lan href="http://www.lionsky.net/Demo/WebHtmlEditor/1_5/Images/Demo/003.gif" target=_blank><U><FONT color=#0000ff>图3</FONT></U></A>)。 
<LI>增加了默认的十一种 WebHtmlEditor 风格菜单：标准Office2000下的风格按钮；标准Office在win xp下的风格按钮酷蓝风格；标准Office 风格按钮+灰色调；标准Office在win xp下的风格按钮酷蓝风格包括所有功能按钮只适合演示用；标准Office风格按钮+3D灰色调；标准Office 风格按钮+淡色调；标准Office风格按钮+蓝色调；标准Office风格按钮+绿色调；标准Office风格按钮+红色调；标准Office风格按钮+黄色调； 全菜单，全功能，基于Office在win xp下的风格按钮酷蓝风格界面，工具栏占位小； 
<LI>加强了上传图片管理功能，可以<A class=RedFont><FONT color=#000000>新建目录</FONT></A>、<A class=RedFont><FONT color=#000000>删除目录或文件</FONT></A>、<A class=RedFont><FONT color=#000000>选择图片</FONT></A>插入同时可以<A class=RedFont><FONT color=#000000>预览</FONT></A>并<A class=RedFont><FONT color=#000000>上传</FONT></A>。 
<LI><A class=RedFont><FONT color=#000000>增加了HTML转换到XHTML的功能。</FONT></A> 
<LI>增加了上传Flash文件管理、上传多媒体文件管理、上传其他文件管理功能。 
<LI>增加了更高级的颜色选择框。 
<LI>所有的风格都使用css样式。并增加了CSS文件和js文件路径属性方便用户自己配置更个性化的WebHtmlEditor。 
<LI>修复了插入背景图片提示URLParams未定义的问题，感谢 Lion互动网络 软冰 的热心反馈 </LI></UL>
<P><IMG height=10 src="http://www.lionsky.net/Demo/WebHtmlEditor/1_5/images/icon.gif" width=10 border=0> [2004-08-08] HtmlEditor Version 3.1.2004.0808 </P>
<UL>
<LI>增加了上传图片管理功能，可以进入目录<A class=RedFont><FONT color=#000000>选择图片</FONT></A>插入同时可以<A class=RedFont><FONT color=#000000>预览</FONT></A>并<A class=RedFont><FONT color=#000000>上传</FONT></A> 
<LI>增加了本地或远程上传的同时加上自己的<A class=RedFont><FONT color=#000000>水印文字</FONT></A>或<A class=RedFont><FONT color=#000000>水印图片</FONT></A>功能(由于时间原因，此部分源码不会在此提供，稍后会在www.lionsky.net提供下载) 
<LI>增加了对web.config中的编码类型为gb2312的支持，3.1以前的版本使用的编码是utf-8,现在的3.1版本理论上支持所有的编码类型,同时增加英文语言包 
<LI>修复了 HtmlEditor 必须设置在虚拟目录才可以使用的问题。现在同时也可以在站点根目录下面使用 
<LI>修复了style.xml配置文件中"是否有状态栏"无效的问题 
<LI>修复了撤消按钮无效的问题，感谢 unruledboy（灵感之源） 的热心反馈 
<LI>修复了表格合并单元格时,被合并的单元的内容不见了的问题，感谢 unruledboy（灵感之源） 的热心反馈 
<LI>修复了图形热点连接失效的问题，感谢 圆圈k 的热心反馈 
<LI>修复了设置上传文件时自动建立年月日目的不正确的问题，感谢 Lion互动网络论坛的用户suz 热心反馈 
<LI>撤消了在提交表单的同时自动获取远程图片保存在本地的功能，改成用工具栏的按钮(<IMG height=30 src="http://www.lionsky.net/Demo/WebHtmlEditor/1_5/lionsky_client/WebHtmlEditor/1_5_2005_729/Images/ButtonImage/remoteupload.gif" width=28 border=0>)来获取远程图片并保存到本地 </LI></UL>
<P><IMG height=10 src="http://www.lionsky.net/Demo/WebHtmlEditor/1_5/images/icon.gif" width=10 border=0> [2004-08-07] HtmlEditor Version 3.0.2004.0807 </P>
<UL>
<LI>增加了本地或远程上传文件时可以设置上传后的缩略图功能 
<LI>修复使用相对路径时，从其它站copy图片后粘贴，地址失效的问题 
<LI>修复一个表单中有多个编辑区时，会多次提交的问题 
<LI>修复非菜单按钮的撤消和恢复功能不能使用的问题 
<LI>修复对象上移或下移一层有脚本错误信息的问题 
<LI>修复删除对象时有脚本错误信息的问题 <BR>
<LI>修复虚拟目录的物理文件夹名称和虚拟目录名称不一样时，上传图片显示无效的问题 <BR></LI></UL>
<P><IMG height=10 src="http://www.lionsky.net/Demo/WebHtmlEditor/1_5/images/icon.gif" width=10 border=0> [2004-06-10] HtmlEditor Version 2.0.2004.0610 </P>
<UL>
<LI>经过一段时间的努力，HtmlEditor终于出来了，我们将不断的更新升级，并使之成为最好的、基于网页的、开放源码的、无组件式的、代码规范的、绿色的、所见即所得的在线编辑器。 <BR></LI></UL><img src="http://www.cnblogs.com/lion.net/aggbug/209652.html?type=1" width="1" height="1" alt=""/><p>评论: 23　<a href="http://www.cnblogs.com/lion.net/archive/2005/08/08/209652.html#pagedcomment" target="_blank">查看评论</a>　<a href="http://www.cnblogs.com/lion.net/archive/2005/08/08/209652.html#commentform" target="_blank">发表评论</a></p><hr/><p>最新新闻：<br/>· <a href="http://news.cnblogs.com/n/56793/" target="_blank">知名扩展 Firebug 的简化版登陆 Chrome</a><span style="color:gray">(2010-02-09 22:59)</span><br/>· <a href="http://news.cnblogs.com/n/56792/" target="_blank">Google 悄悄地启用 1e100.net，打枪地不要</a><span style="color:gray">(2010-02-09 22:57)</span><br/>· <a href="http://news.cnblogs.com/n/56791/" target="_blank">从 Google 代码库找到的好东西</a><span style="color:gray">(2010-02-09 22:46)</span><br/>· <a href="http://news.cnblogs.com/n/56789/" target="_blank">苹果在线商店临时关闭 或将推新Macbook</a><span style="color:gray">(2010-02-09 22:39)</span><br/>· <a href="http://news.cnblogs.com/n/56788/" target="_blank">豆瓣网推出豆瓣电台iPhone客户端</a><span style="color:gray">(2010-02-09 21:51)</span><br/></p><p>编辑推荐：<a href="http://news.cnblogs.com/n/56782/" target="_blank">2010年2月编程语言排行榜</a><br/></p><p>网站导航：<a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/" target="_blank">个人主页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/group/" target="_blank">小组</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://kb.cnblogs.com" target="_blank">知识库</a></p>]]></description></item><item><title>经过半年的时间， WebHtmlEditor 1.0 Release 终于发布了</title><link>http://www.cnblogs.com/lion.net/archive/2005/04/04/131585.html</link><dc:creator>Lion</dc:creator><author>Lion</author><pubDate>Mon, 04 Apr 2005 01:33:00 GMT</pubDate><guid>http://www.cnblogs.com/lion.net/archive/2005/04/04/131585.html</guid><description><![CDATA[<p>阅读: 6256 评论: 47 作者: <a href="http://www.cnblogs.com/lion.net/" target="_blank">Lion</a> 发表于 2005-04-04 09:33 <a href="http://www.cnblogs.com/lion.net/archive/2005/04/04/131585.html" target="_blank">原文链接</a></p><p align="center"><img height="45" src="http://www.lionsky.net/Demo/WebHtmlEditor/1_0/Images/htmleditor_about.gif" width="310" border="0" /> 
</p>
<p>经过半年多的不振，终于在前段时间开始了HtmlEditor(Web在线编辑器)的工作，从这个版本开始HtmlEditor正式更名为WebHtmlEditor，最新版本为 1.0。 目前 WebHtmlEditor 已经实现了在IE中最强大的编辑器功能[<a href="http://www.lionsky.net/Demo/WebHtmlEditor/1_0/WebUI.htm"><font color="#800080">最新功能预览</font></a>]，如果您想加入其他的功能可以以外挂的形式集成到 WebHtmlEditor 中[演示：<a href="http://www.lionsky.net/Demo/WebHtmlEditor/1_0/I_CodeHighlighter.aspx"><font color="#800080">将CodeHighlighter以外挂的形式集成到 WebHtmlEditor</font></a>] 
<br/>
<br/>这个版本算是个终结版，从此以后的一段时间我不想再继续 WebHtmlEditor 的工作了，因为工作很忙，还要抽出时间来学习其他的东西，如果您对 WebHtmlEditor 的研发工作感兴趣，可以 <a href="mailto:lion-a@sohu.com"><font color="#0000ff">给我邮件</font></a>&#160;或到 <a href="http://bbs.lionsky.net/ShowForum.aspx?ForumID=25"><font color="#800080">WebHtmlEditor官方论坛</font></a>&#160;中给我留言。 
<br/>
<br/>什么是 WebHtmlEditor? 
<br/>&#160;&#160; 她是一个网页的在线文本编辑器,她能够在网页上实现许多桌面编辑软件（如：Word）所具有的强大可视编辑功能；她是一个真正的绿色软件，不需要在计算机上安装任何的客户端软件；并且她是完全开放源代码的，允许无商业目的个人用户免费使用。 如在商业上使用请与我联系。 
</p>
<p>资源： 
<br/>下载目录：<a href="http://www.lionsky.net/"><font color="#800080">http://www.lionsky.net</font></a> 
<br/>
<br/>这个软件的许可协议为GPL。 
<br/>详细请看GPL.txt或访问<a href="http://www.opensource.org/licenses/gpl-license.php"><font color="#0000ff">http://www.opensource.org/licenses/gpl-license.php</font></a> 
<br/>
<br/>下载地址:[HtmlEditor 3.1_Src and Demo<font color="#8cacfc"> </font><font color="#000000">] 
<br/></font><a href="http://www.lionsky.net/MyWebsite/downsoft/index.aspx"><font color="#1d58d1"><u>http://www.lionsky.net/MyWebsite/downsoft/index.aspx</u></font></a> 
<br/><font color="#000000">在线演示： 
<br/></font><a href="http://www.lionsky.net/Demo/WebHtmlEditor/1_0/Default.htm"><font color="#800080">http://www.lionsky.net/Demo/WebHtmlEditor/1_0/Default.htm</font></a><a href="http://www.lionsky.net/HtmlEditor_Demo"><u></u></a> 
<br/>
<br/>
<br/>
<br/>最 新 更 新 
</p>
<p>========= 
<br/>[2004-11-11] WebHtmlEditor Version 1.0.2004.1111 
<br/>&#8230;从这个版本开始HtmlEditor正式更名为WebHtmlEditor，最新版本为 1.0。 
<br/>&#8230;去掉了Style.xml和ToolBar.xml的配置文件 
<br/>&#8230;修正了可以远程上传文件，但是提交以后取不到值的问题。 
<br/>&#8230;增加了在设计状态时所有的工具栏和按钮可以动态配置。动态设定自定义的工具栏，并在工具栏添加自定义的按钮(图1,图2,图3)。 
<br/>&#8230;加强了上传图片管理功能，可以新建目录、删除目录或文件、选择图片插入同时可以预览并上传。 
<br/>&#8230;&#8230;增加了默认的十一种 WebHtmlEditor 风格菜单：标准Office2000下的风格按钮；标准Office在win xp下的风格按钮酷蓝风格；标准Office风格按钮+灰色调；标准Office在win xp下的风格按钮酷蓝风格包括所有功能按钮只适合演示用；标准Office风格按钮+3D灰色调；标准Office风格按钮+淡色调；标准Office风格按钮+蓝色调；标准Office风格按钮+绿色调；标准Office风格按钮+红色调；标准Office风格按钮+黄色调；全菜单，全功能，基于Office在win xp下的风格按钮酷蓝风格界面，工具栏占位小； 
<br/>&#8230;增加了HTML转换到XHTML的功能。 
<br/>&#8230;增加了上传Flash文件管理、上传多媒体文件管理、上传其他文件管理功能。 
<br/>&#8230;增加了更高级的颜色选择框。 
<br/>&#8230;所有的风格都使用css样式。并增加了CSS文件和js文件路径属性方便用户自己配置更个性化的WebHtmlEditor。 
<br/>========= 
<br/>[2004-08-08] HtmlEditor Version 3.1.2004.0807 
<br/>&#8230;&#8230;增加了上传图片管理功能，可以进入目录选择图片插入同时可以预览并上传 
<br/>&#8230;&#8230;增加了本地或远程上传的同时加上自己的文字或图片水印功能 
<br/>&#8230;&#8230;增加了对web.config中的编码类型为gb2312的支持，3.1以前的版本使用的编码是utf-8,现在的3.1版本理论上支持所有的编码类型,同时增加英文语言包 
<br/>&#8230;&#8230;修复了 HtmlEditor 必须设置在虚拟目录才可以使用的问题。现在同时也可以在站点根目录下面使用 
<br/>&#8230;&#8230;修复了style.xml配置文件中&quot;是否有状态栏&quot;无效的问题 
<br/>&#8230;&#8230;修复了撤消按钮无效的问题，感谢 unruledboy（灵感之源） 的热心反馈 
<br/>&#8230;&#8230;修复了表格合并单元格时,被合并的单元的内容不见了的问题，感谢 unruledboy（灵感之源） 的热心反馈 
<br/>&#8230;&#8230;修复了图形热点连接失效的问题，感谢 圆圈k 的热心反馈 
<br/>&#8230;&#8230;修复了设置上传文件时自动建立年月日目的不正确的问题，感谢　Lion互动网络论坛的用户suz　热心反馈　 
<br/>&#8230;&#8230;撤消了在提交表单的同时自动获取远程图片保存在本地的功能，改成用工具栏的按钮()来获取远程图片并保存到本地 
</p>
<p>
<br/>[2004-08-07] HtmlEditor Version 3.0.2004.0807 
<br/>&#8230;&#8230;增加了本地或远程上传文件时可以设置上传后的缩略图 
<br/>&#8230;&#8230;修复使用相对路径时，从其它站copy图片后粘贴，地址失效的问题 
<br/>&#8230;&#8230;修复一个表单中有多个编辑区时，会多次提交的问题 
<br/>&#8230;&#8230;修复非菜单按钮的撤消和恢复功能不能使用的问题 
<br/>&#8230;&#8230;修复对象上移或下移一层有脚本错误信息的问题 
<br/>&#8230;&#8230;修复删除对象时有脚本错误信息的问题 
<br/>&#8230;&#8230;修复虚拟目录的物理文件夹名称和虚拟目录名称不一样时，上传图片显示无效的问题 
<br/>&#160; 
<br/>========= 
<br/>[2004-06-10] HtmlEditor Version 2.0.2004.0610 
<br/>&#8230;&#8230;经过一段时间的努力，HtmlEditor终于出来了，我们将不断的更新升级，并使之成为最好的、基于网页的、开放源码的、无组件式的、代码规范的、绿色的、所见即所得的在线编辑器。 
<br/>
<br/>================================================
<br/><font color="#ff0000"><font color="#0000ff">WebHtmlEditor 1.0 Release 最后更新时间 2005.04.05 13:30,请再这之前下载过的朋友重新去下载</font><font color="#000000"> </font>
<br/>
<br/>
<br/></font><font color="#000000">~感谢 Lion 互动网络的机器猫 和 CSDN论坛的hchxxzx 的信息反馈
<br/>修正问题：Mini样式下的有些弹出窗口和所有样式的有些右键菜单缺少参数的问题，提示Guid错误
<br/>
<br/>~由于我的疏忽，在制作安装文件时忘记将ResourceManager.cs打包进去。由此给您带来不便，请谅解! </font>
</p><img src="http://www.cnblogs.com/lion.net/aggbug/131585.html?type=1" width="1" height="1" alt=""/><p>评论: 47　<a href="http://www.cnblogs.com/lion.net/archive/2005/04/04/131585.html#pagedcomment" target="_blank">查看评论</a>　<a href="http://www.cnblogs.com/lion.net/archive/2005/04/04/131585.html#commentform" target="_blank">发表评论</a></p><hr/><p>最新新闻：<br/>· <a href="http://news.cnblogs.com/n/56793/" target="_blank">知名扩展 Firebug 的简化版登陆 Chrome</a><span style="color:gray">(2010-02-09 22:59)</span><br/>· <a href="http://news.cnblogs.com/n/56792/" target="_blank">Google 悄悄地启用 1e100.net，打枪地不要</a><span style="color:gray">(2010-02-09 22:57)</span><br/>· <a href="http://news.cnblogs.com/n/56791/" target="_blank">从 Google 代码库找到的好东西</a><span style="color:gray">(2010-02-09 22:46)</span><br/>· <a href="http://news.cnblogs.com/n/56789/" target="_blank">苹果在线商店临时关闭 或将推新Macbook</a><span style="color:gray">(2010-02-09 22:39)</span><br/>· <a href="http://news.cnblogs.com/n/56788/" target="_blank">豆瓣网推出豆瓣电台iPhone客户端</a><span style="color:gray">(2010-02-09 21:51)</span><br/></p><p>编辑推荐：<a href="http://news.cnblogs.com/n/56782/" target="_blank">2010年2月编程语言排行榜</a><br/></p><p>网站导航：<a href="http://www.cnblogs.com" target="_blank">博客园首页</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/" target="_blank">个人主页</a>&nbsp;&nbsp;<a href="http://news.cnblogs.com" target="_blank">新闻</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/ing/" target="_blank">闪存</a>&nbsp;&nbsp;<a href="http://home.cnblogs.com/group/" target="_blank">小组</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com/q/" target="_blank">博问</a>&nbsp;&nbsp;<a href="http://space.cnblogs.com" target="_blank">社区</a>&nbsp;&nbsp;<a href="http://kb.cnblogs.com" target="_blank">知识库</a></p>]]></description></item></channel></rss>