2009年12月

chrome扩展出来了,你还会用chrome吗

chrome刚出来的时候,一下就被chrome简洁的界面吸引了,启动也很快速,就连我当时主要使用的maxthon也弄了个防chrome的皮肤(我现在基本不用maxthon了,改用firefox了,用了firefox才知道firefox的强大,虽说启动稍慢,但只要你的电脑cpu强点,启动还是可以接受的)。吸引归吸引,但真正用chrome浏览网页还是很少的,没有鼠标手势,我怎么都用不习惯,虽说后来发现了strokeit(一个超强的鼠标手势软件,可以用在任何程序中),但也很少使用。用上firefox后就期待chrome也能有那么强大的扩展,现在,chrome的扩展终于来了。

万众期待的chrome扩展功能放出来一段时间了,把chrome的扩展中心翻了个底朝天,也没有发现一个称心如意的扩展,要不就是功能很弱,要不就是实现的不完美,跟firefox里面的扩展功能比起来,天壤之别。也许只是刚刚起步的原因吧,这些都可以理解。但今天打开chrome,无意中打开进程管理器,一看吓我一跳,chrome进程居然多达八九个之多,虽说每个进程占用内存不是很多,但也达到了十几兆啊,网上查了一下,原来是chrome的每个扩展都会开启一个进程,哪怕是一个很简单很简单的扩展,也会占用十几兆内存,如果仅仅安装几个扩展占用内存也无所谓了,但如果安装了几十个扩展(像我的firefox就装了几十个扩展了),想一想光扩展就会占到几百兆的内存,再开七八个tab,这样算起来太恐怖了,就算现在内存大,但也不是这样使用的。而且chrome开的时间长了,会越来越慢,不过浏览器开久了,确实应该重启一下再打开,任何浏览器都有这个毛病。

多进程使chrome扩展的安装和卸载不用重启,也避免了扩展影响chrome的主进程,但这个内存占用问题确实该解决一下了。所以目前还不打算折腾chrome,还是用我的功能强大的firefox。

Google Closure Compiler Javascript脚本压缩工具

Google发布了Google Closure Compilerjavascript脚本压缩工具,google提供了3种可使用的方式:

1、网页在线压缩

地址为:http://closure-compiler.appspot.com/,打开网页即可,粘贴上脚本,即可压缩代码了。以下为界面截图:

代码放在上面图片的红边矩形那里,上面//开头的是设置项,不要删掉了,如果你的脚本用到了另外一个脚本文件,可以在最上面的Add a URL处添加,因为它压缩不仅仅是缩短你的代码,还会重新编写你的代码,所以要确保代码语法正确。点击“Compile”按钮后,将提交到google后台压缩,压缩完成后会在右边显示压缩结果,也会出现一个链接下载压缩后的代码!

2、压缩服务API

使用此API可以直接提交要压缩的代码至google,它会返回结果给你。

[code language="html"]
<html>
<body>
<form action="http://closure-compiler.appspot.com/compile" method="POST">
<p>Type JavaScript code to optimize here:</p>
<textarea name="js_code" cols="50" rows="5">
function hello(name) {
// Greets the user
alert('Hello, ' + name);
}
hello('New user');
</textarea>
<input type="hidden" name="compilation_level" value="WHITESPACE_ONLY">
<input type="hidden" name="output_format" value="text">
<input type="hidden" name="output_info" value="compiled_code">
<br><br>
<input type="submit" value="Optimize">
</form>
</body>
</html>
[/code]

注意Form的action地址,还有后的hidden里面的参数,都是可以自定义的,更多API的介绍可以看这里:http://code.google.com/closure/compiler/docs/api-ref.html
以下为上面代码的界面截图:

3、使用Closure Compiler Application

一个java写的命令行程序,通过命令行直接压缩要压缩的文件,经常要压缩javascript脚本的话,这个是最方便的方式了。把程序(javascript脚本压缩工具)下载到本地后,命令行转到程序的文件夹下。假设你有一个javascript脚本文件F:\scripts\test.js,把压缩后的文件放到F:\scripts\test.min.js,命令行代码如下:

[code language="javascript"]
java -jar compiler.jar --js "F:\scripts\test.js" --js_output_file "F:\scripts\test.min.js"
[/code]

更多命令行帮助可以使用以下命令查看:

[code language="javascript"]
java -jar compiler.jar --help
[/code]

Google AdSense中国博客发布Google SEO入门教程

Google AdSense中国博客发布Google SEO入门教程,看了下教程的日期是2008年的,到2009年快完了才翻译成中文的。24页的教程,讲的还是蛮详细的,有时间要好好的看看,很基础的东西,点击以下地址可以下载阅读:
http://www.googlechinawebmaster.com/Google-Search-Engine-Optimization-Starter-Guide.pdf
教程目前只讲了以下一些内容:比如改善标题和描述元标签,URL结构,网站导航,网站内容的建设,锚文本......等等,教程还在更新中!

C#判断两个日期是否在同一周,某日期是本月的第几周

判断两个日期是否在同一周

[code language="csharp"]
/// <summary>
/// 判断两个日期是否在同一周
/// </summary>
/// <param name="dtmS">开始日期</param>
/// <param name="dtmE">结束日期</param>
/// <returns></returns>
private bool IsInSameWeek(DateTime dtmS, DateTime dtmE)
{
TimeSpan ts=dtmE - dtmS;
double dbl=ts.TotalDays;
int intDow=Convert.ToInt32(dtmE.DayOfWeek);
if(intDow==0)
intDow=7;

if(dbl>=7 || dbl>=intDow)
return false;
else
return true;
}
[/code]

- 阅读剩余部分 -

使用ISAPI_Rewrite重写URL后取页面的访问地址

在IIS里面装了ISAPI_Rewrite后,重写URL后在程序里面用Request.RawUrl和Requst.Url取得的地址都是没有经过重写的URL,想要取得重写过的URL必须这么做:在重写的RewriteRule后面[]里面的参数必须带上U,Request.ServerVeriables["HTTP_X_REWRITE_URL"],即可取得页面的重写过的URL。

另附上在php中的取法:

IIS中

$_SERVER['HTTP_X_REWRITE_URL']

Apache使用:

$_SERVER['REDIRECT_QUERY_STRING']或$_SERVER['REDIRECT_URL']

wordpress中不同页面调用不同侧边栏的插件:Widget Logic

通过这个插件,你可以完全DIY你自己的侧边栏,日志页面想要与首页不同?可以!page页面也想要与众不同?~~可以,让Widget Logic帮你做完所有的工作!不同页面,展示不同的侧边栏。

当然,网上也有很多教程指导童鞋们怎么修改single.php,生成新的single2.php,并在不同的模版下调用它们,以达到实现不同页面 不同侧边栏的效果。然而,这些方法大部分是针对较旧版本的WordPress而言的,它们只能修改主题默认自带的Widgets,自己添加的就不是很好实 现;

或者,只能修改部分主题~~< ?php get_sidebar(); ?>这句话,并不是所有的主题都有。

- 阅读剩余部分 -

Response.Status和Response.StatusDescription的区别

看VS里面的提示,怎么都看不出来这两个有什么区别,反正都是字符串。
其实它们之间的区别就是Status的值里面比StatusDescription多一个状态码,如下:

Response.Status = "304 Not Modified";
Response.StatusDescription = "Not Modified";

在Wordpress里面给代码高亮插件增加运行代码功能

wordpress中装上代码高亮插件后,我装的是这个代码高亮插件(SyntaxHighlighter Evolved),其它的代码高亮插件也是一样,大部分都是用的SyntaxHighlighter,包装了一下而已。这个插件有一个比较遗憾的地方,就是没有运行代码的功能,一段html,想很方便的显示代码的效果,还必须把代码copy出来、粘贴才能看到效果。把下面这段代码加入到里的主题文件里面,在html代码片段中,鼠标放在代码片段上的时候就会显示“运行代码”的按钮。主题需引用了jQuery,或者自己加个jQuery的引用也行。

■ 主题中带有jQuery的代码如下:

[code lang="html"]
<!-代码高亮加“运行代码” start-->
<script>
function runcode(code_id){
var win1=window.open();
win1.document.open();
win1.document.write(
SyntaxHighlighter.utils.unindent(
SyntaxHighlighter.utils.fixInputString(SyntaxHighlighter.vars.highlighters[code_id].originalCode)
.replace(/&lt;/g, '<')
.replace(/&gt;/g, '>')
.replace(/&amp;/g, '&')
)
);
win1.document.close();
}
jQuery("div[class=syntaxhighlighter xml]").live("mouseover", function(){
if(jQuery(".runcode", this).length==0)
jQuery(".toolbar", this).prepend('<a href="javascript:void(0);" onclick="runcode(jQuery(this).parent().parent().parent().attr(\'id\'))" class="item runcode" style="font-size:12px; width:48px; height:16px; text-indent:0px !important; line-height:16px; margin-top:0px !important;">运行代码</a>');
});
</script>
<!-代码高亮加“运行代码” end-->
[/code]

■ 主题中不带有jQuery的代码如下:

[code lang="html"]
<!-代码高亮加“运行代码” start-->
<script type="text/javascript" src="修改为你的jquery文件的路径"></script>
<script>
function runcode(code_id){
var win1=window.open();
win1.document.open();
win1.document.write(
SyntaxHighlighter.utils.unindent(
SyntaxHighlighter.utils.fixInputString(SyntaxHighlighter.vars.highlighters[code_id].originalCode)
.replace(/&lt;/g, '<')
.replace(/&gt;/g, '>')
.replace(/&amp;/g, '&')
)
);
win1.document.close();
}
jQuery("div[class=syntaxhighlighter xml]").live("mouseover", function(){
if(jQuery(".runcode", this).length==0)
jQuery(".toolbar", this).prepend('<a href="javascript:void(0);" onclick="runcode(jQuery(this).parent().parent().parent().attr(\'id\'))" class="item runcode" style="font-size:12px; width:48px; height:16px; text-indent:0px !important; line-height:16px; margin-top:0px !important;">运行代码</a>');
});
</script>
<!-代码高亮加“运行代码” end-->
[/code]