以前xp上用小乌龟,diff的时候只需要ctrl选一下两个版本,然后就哦了,先在命令行下面是现svn log查log,记下两个版本,然后两个版本都cat下来,然后vimdiff两个文件。由于记性不是很好,每次cat完一个,就忘了下一个版本号。。,所以俺整了一个增强版,只需要记住版本号的最后一位或几位数。
下载
#比较修改版本与最新版本的差异
svndiff.sh base.js
#比较修改版本与10782版本的差异
svndiff.sh base.js 10782
#比较修改版本与最新的以数字56结尾的版本的差异
svndiff.sh --lazy base.js 56
#比较10732与10783两个版本的差异
svndiff.sh base.js 10732 10783
#比较两个最新的以12和03结尾的版本的差异
svndiff.sh --lazy base.js 12 03
Copy Code
如果您恰好使用了ff浏览器(偶用ff3.0),server端使用了nginx作代理,而某个ajax又恰好传了一个为null的数据,您就会看到这个错误
firefox下点run code运行下面代码,firebug 看控制台
<html>
<input type="button" value="send null ajax" onclick="send();" />
</html>
<script>
function send()
{
var rq = new XMLHttpRequest();
rq.open("POST", "http://bluehua.org/index.php", true);
rq.send( null );
}
</script> Copy Code |
Run Code
两种解决方法:
client side : rq.send( data ) -> rq.send( data || ” );
server side : http://rocky.blog.kingtch.com/2008/11/28/fix_nginx_411_length_required/
下载地址更新 2009.11.8
http://wordpress.org/extend/plugins/keywords-highlight-tool/
———-
由于blog的访客多来自搜索引擎,所以关键词高亮会大大的增强访客的浏览体验,帮助访客快速定位感兴趣的内容.
类似插件已有很多,但俺绝不是再造普通的轮子,一定要用浏览器兼容性最好的插件,没有就自己搞..
现存插件的实现方式有两种,一种用php在后端实现,另一种用js在前端实现.
php实现高亮,浏览器兼容性最好,但是有两个问题:
1.效率问题,不如用js实现,将压力分到前端; 2.不支持cache类插件,当然这个问题可以通过hack cache插件解决,但是不可取.
js实现高亮:
比较理想的实现方法,搜到一篇文章叫也谈Wordpress关键词高亮 里面讲到用js高亮关键词,但是中文gb转码使用了vbscript,所以仅支持ie浏览器
于是用自己的想法简单实现了一下这个功能, 点击搜索测试 第一个结果就应该是了
screenshot:

跟上面提到插件的主要不同点:
- 改进了高亮的实现方法,仅替换元素的text节点,防止造成元素事件失效
- 判断如果不是外链过来的访客将不加载高亮的js脚本
- 百度链接过来,中文gb转码时使用php后台转码,兼容所有主流浏览器
目前仅添加了对google,yahoo,baidu三个搜索引擎的支持,如果想支持更多,自行修改highlight.js即可
插件下载点这里
恩,有个产品要速度改版,改用ajax实现分页,可是页面中有很多内联脚本,求技术改比较慢,于是采用了最速都的方法:返回内容之后,把html塞到对应的层里,然后手动eval一下脚本。
这里有点小困难的就是脚本里面有document.write…。不过李宁叔叔说过…
demo:
支持返回代码中的内联或者外联的脚本
http://bluehua.org/demo/eval_inner_html/
原理是这样滴:
执行这些代码之前先把document.write改成自己的函数,用来收集输出的字符串
var _write = document.write;
document.write = function( str )
{
_inner_js.push( str );
} Copy Code
执行返回html中的脚本之后将document.write输出的代码添加到script标签的位置
var tmp = document.createDocumentFragment();
appendHTML( tmp, _inner_js.join( '' ) );
s.parentNode.insertBefore( tmp, s );
Copy Code