摘要: Hibernate3中取得多层数据的所产生的n+1 selects问题的解决。其实这个问题在Hibernate in Action中已经有很多种解决办法了。但我觉得其中最好的办法是用Criteria的FetchMode来解决,但是Hibernate in Action中写的很不详细。我昨晚试了好长时间来的到答案。下面总结一下。需求这样的,我有四张表(one,two,three,four)从one一直外键关联到four。结构如下现在在Session中得到One,并从One里一直取到Four里的内容。如果简单的用Session.get来实现是这样的。Oneone=(One)session.get( 阅读全文
posted @ 2012-03-16 14:29 有梦就能实现 阅读(835) 评论(0) 推荐(0)
摘要: 如果不使用类库或者没有自己的类库,储备一些常用函数总是有好处的。(10)addEvent网上最流行的版本是Scott Andrew的,据说javascript界曾举行一场比赛(此事件我们可以在Pro Javascript Techniques第100页看到)或浏览PPK的网站,征求添加事件与移除事件的函数,他就是其获奖者。下面就是他的实现:function addEvent(elm, evType, fn, useCapture) { if (elm.addEventListener) { elm.addEventListener(evType, fn, useCapture);//DOM2. 阅读全文
posted @ 2012-03-16 13:54 有梦就能实现 阅读(330) 评论(0) 推荐(0)
摘要: W3C那帮人的脑袋被驴踢了,直到javascript1.8.1才支持trim函数(与trimLeft,trimRight),可惜现在只有firefox3.5支持。由于去除字符串两边的空白实在太常用,各大类库都有它的影子。加之,外国人都很有研究精神,搞鼓了相当多实现。实现1String.prototype.trim = function() { return this.replace(/^\s\s*/, '').replace(/\s\s*$/, ''); }看起来不怎么样,动用了两次正则替换,实际速度非常惊人,主要得益于浏览器的内部优化。一个著名的例子字符串拼接 阅读全文
posted @ 2012-03-16 13:47 有梦就能实现 阅读(198) 评论(0) 推荐(0)
摘要: 各种实现方式Pure DOM通常先使用getElementsByTagName("*")取出文档中所有元素,然后进行遍历,使用正则表达式找出匹配的元素放入一个数组返回。由于IE5不支持document.getElementsByTagName("*"),要使用分支document.all以防错误。The Ultimate getElementsByClassName方案,作者为Robert Nyman,05年实现,可见老外许多东西在很早以前就走得很远了。//三个参数都是必需的,查找一网页中5007个类名为“cell”的元素,IE8历时1828 ~ 184 阅读全文
posted @ 2012-03-16 13:18 有梦就能实现 阅读(457) 评论(0) 推荐(0)
摘要: 一下内容是转载的,内容应该出自高性能JavaScript一书中,此书值得一读。学习过程中写的笔记,有误请指正。性能并不是唯一的考虑因素,在对性能要求并非苛刻的环境中,性能也可让位于:团队编码规范,个人编码习惯,代码可读性,模块可扩展性等因素。以下提到的对性能的优化,仅仅提供了从性能的角度去阐释一些设计思路,但实际上,浏览器本身会逐步优化自身的性能问题,而我们那些提高性能的hack,可能会因为浏览器的版本更新,导致成为一种无用的hack,甚至让性能更慢,所以不要无谓的使用一些hack,去优化一些执行次数很少的代码,而降低代码的可读性,或增加代码量,,一句话:如非必要,请勿hack。一 javas 阅读全文
posted @ 2012-03-16 13:09 有梦就能实现 阅读(321) 评论(0) 推荐(0)