<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[funboy88的专栏]]></title><description><![CDATA[]]></description><link>https://blog.csdn.net/funboy88</link><language>zh-cn</language><generator>https://blog.csdn.net/</generator><copyright><![CDATA[Copyright &copy; funboy88]]></copyright><item><title><![CDATA[谈表达式树的缓存（5）：引入散列值 (2)]]></title><link>https://blog.csdn.net/funboy88/article/details/4192018</link><guid>https://blog.csdn.net/funboy88/article/details/4192018</guid><author>funboy88</author><pubDate>Sat, 16 May 2009 12:26:00 +0800</pubDate><description><![CDATA[　　回想起第一种做法，我们使用最原始的方式，使用字典来存储对象，不过我们需要拼接出一个庞大的字符串，因为它具有“唯一性”。但是其实从那时开始，我们就已经走了一条弯路。在.NET Framework中，一个对象如果要作为字典的“键”，难道一定要是字符串吗？很显然，答案是否定的。事实上，任何类型的对象都可以作为字典的键，而字典认为两个“键”对象相同依靠的是对象的GetHashCode方法和Equals]]></description><category></category></item><item><title><![CDATA[谈表达式树的缓存（5）：引入散列值(1) ]]></title><link>https://blog.csdn.net/funboy88/article/details/4192011</link><guid>https://blog.csdn.net/funboy88/article/details/4192011</guid><author>funboy88</author><pubDate>Sat, 16 May 2009 12:24:00 +0800</pubDate><description><![CDATA[　　到目前为止，我们已经实现了三种缓存方式：首先我们设法构建唯一字符串，但是由于它的代价较高，于是我们使用了前缀树进行存储；又由于前缀树在实际操作中所花的时间和空间都有不令人满意之处，我们又引入了二叉搜索树。那么二叉搜索树又有什么缺点呢？其实前文已经谈到过了，那就是从理论上来说，它的时间复杂度相对前两个要高，在最坏情况下将会出现O(m * log(n))的时间复杂度——每次比较两个前缀树需要耗费O]]></description><category></category></item><item><title><![CDATA[谈表达式树的缓存（4）：使用二叉搜索树（AVL树）]]></title><link>https://blog.csdn.net/funboy88/article/details/4192009</link><guid>https://blog.csdn.net/funboy88/article/details/4192009</guid><author>funboy88</author><pubDate>Sat, 16 May 2009 12:22:00 +0800</pubDate><description><![CDATA[ 上一篇文章中谈到的前缀树实现方式，时间复杂度从理论上来讲已经达到了最优，而空间复杂度理论上也可以做到较优。但是理论和实际是有差别的，而对于上文前缀树的实现来说，这两方面并不是非常理想：时间：前缀树时间复杂度为O(m)的前提是每次哈希表查找操作的时间复杂度为O(1)，不过这个O(1)与一次数值比较相比，从性能上来说还是有比较明显的差距。 空间：前缀树空间复杂度较优的前提是“精细”地]]></description><category></category></item><item><title><![CDATA[谈表达式树的缓存（3）：使用前缀树]]></title><link>https://blog.csdn.net/funboy88/article/details/4192005</link><guid>https://blog.csdn.net/funboy88/article/details/4192005</guid><author>funboy88</author><pubDate>Sat, 16 May 2009 12:20:00 +0800</pubDate><description><![CDATA[在上一篇文章里我们设法将前缀树构造为一个唯一的字符串，然后使用字符串作为key缓存在字典中。这个想法非常直接，做法也不困难（在遍历时记录详细信息便可）。不过事实上，老赵在思考表达式树的缓存问题时，这种字符串拼接的方式只存在于脑海当中，而上文的实现是为了这一系列文章的完整性而特地编写的。这是因为它的缺点较为明显，正如上文所述，字符串拼接操作较为耗时耗资源，且很容易生成一个长度可观的字符串（并非不能优]]></description><category></category></item><item><title><![CDATA[谈表达式树的缓存（2）：由表达式树生成字符串 ]]></title><link>https://blog.csdn.net/funboy88/article/details/4192002</link><guid>https://blog.csdn.net/funboy88/article/details/4192002</guid><author>funboy88</author><pubDate>Sat, 16 May 2009 12:19:00 +0800</pubDate><description><![CDATA[　　谈到使用表达式树作为key进行缓存，您脑海中最早浮现出来的解决方案是什么？老赵看来，大部分朋友的第一反应自然就是将作为key的表达式树，使用一定规则生成一个字符串。简而言之，这个生成字符串的规则F需要能够保证： 在同一个缓存空间内，同样的表达式树能够生成相同的字符串。 在同一个缓存空间内，不同的表达式树生成不同的字符串。　　似乎有些罗嗦，朋友们明白便是。其中“在同一个缓存空]]></description><category></category></item><item><title><![CDATA[谈表达式树的缓存（1）：引言 ]]></title><link>https://blog.csdn.net/funboy88/article/details/4192000</link><guid>https://blog.csdn.net/funboy88/article/details/4192000</guid><author>funboy88</author><pubDate>Sat, 16 May 2009 12:17:00 +0800</pubDate><description><![CDATA[　表达式树（Expression Tree）是.NET 3.5中引入的一种表达方式。表达式树的运用十分广泛，可以直观地表现出各种“数据”，甚至“逻辑”和“行为”。再者，表达式树是强类型的，因此合理地使用这个新特性可以让代码编写变得优雅，方便。一个最简单而常见的例子便是，某些朋友目前就已经喜欢使用表达式树来代替传统的ByXxx方法，尤其是在访问一些直接支持表达式树的数据源时（例如IEnumerabl]]></description><category></category></item><item><title><![CDATA[用lambda构建ORM查询语句 ]]></title><link>https://blog.csdn.net/funboy88/article/details/4191988</link><guid>https://blog.csdn.net/funboy88/article/details/4191988</guid><author>funboy88</author><pubDate>Sat, 16 May 2009 12:10:00 +0800</pubDate><description><![CDATA[用lambda构建ORM查询语句 本文介绍如何解析lambda表达式来获取一个满足条件的查询语句。先看个截图   通过设置实体对象Article_Content的查询表达式，就可以获取对应的参数化SQL语句，使用起来很方便，减少了代码的书写，同时提高了安全性。 本文需要了解的基础知识有：lambda表达式 Expression表达式树 扩展方法 ]]></description><category></category></item><item><title><![CDATA[jQuery入门[6]－动画 ]]></title><link>https://blog.csdn.net/funboy88/article/details/4135595</link><guid>https://blog.csdn.net/funboy88/article/details/4135595</guid><author>funboy88</author><pubDate>Wed, 29 Apr 2009 10:36:00 +0800</pubDate><description><![CDATA[ jQuery直接各种动画，常见的被封装成各种方法，如show()/hide()/slideDown()/fadeIn()等等，参见：Effects最灵活的则属于animate( params, [duration], [easing], [callback] )方法，参见：animate 其中params为动画的运行结果，可以为各种样式属性，jQuery将在duration指定的时间内，将对象的]]></description><category></category></item><item><title><![CDATA[jQuery入门[5]－AJAX ]]></title><link>https://blog.csdn.net/funboy88/article/details/4135589</link><guid>https://blog.csdn.net/funboy88/article/details/4135589</guid><author>funboy88</author><pubDate>Wed, 29 Apr 2009 10:34:00 +0800</pubDate><description><![CDATA[ jQuery为AJAX提供了非常丰富的支持，参见Ajax其中最基本当属$ajax()，通过不同的参数，这个方法可以录活支持各种AJAX应用场景。如：$.ajax({url: "test.html",cache: false,success: function(html){$("#results").append(html);}});完整参数列表参见：options]]></description><category></category></item><item><title><![CDATA[jQuery入门[4]－链式代码 ]]></title><link>https://blog.csdn.net/funboy88/article/details/4135572</link><guid>https://blog.csdn.net/funboy88/article/details/4135572</guid><author>funboy88</author><pubDate>Wed, 29 Apr 2009 10:30:00 +0800</pubDate><description><![CDATA[ jQuery另一个很令人惬意的地方是，一般的代码都是一行一行写，jQuery的代码可以一串一串写。这一点，在前面的文章中已经介绍过了。直接来一个Demo:Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->DOCTYPE html]]></description><category></category></item><item><title><![CDATA[jQuery入门[3]－事件 ]]></title><link>https://blog.csdn.net/funboy88/article/details/4135555</link><guid>https://blog.csdn.net/funboy88/article/details/4135555</guid><author>funboy88</author><pubDate>Wed, 29 Apr 2009 10:28:00 +0800</pubDate><description><![CDATA[ jQuery对事件的支持主要包括：bind()--为事件绑定处理程序，如：    $("p").bind("mouseenter mouseleave", function(e){    $(this).toggleClass("over");    });unbind()--注销绑定在事件上的处理程序，如：$(document).unbind(ready);，如]]></description><category></category></item><item><title><![CDATA[jQuery入门[2]－选择器 ]]></title><link>https://blog.csdn.net/funboy88/article/details/4135511</link><guid>https://blog.csdn.net/funboy88/article/details/4135511</guid><author>funboy88</author><pubDate>Wed, 29 Apr 2009 10:17:00 +0800</pubDate><description><![CDATA[ jQuery之所以令人爱不释手，在于其强大的选择器表达式令DOM操作优雅而艺术。jQuery的选择符支持id,tagName,css1-3 expressions,XPath，参见：http://docs.jquery.com/SelectorsDEMO:Code highlighting produced by Actipro CodeHighlighter (freeware)]]></description><category></category></item><item><title><![CDATA[jQuery入门[1]－构造函数 ]]></title><link>https://blog.csdn.net/funboy88/article/details/4135501</link><guid>https://blog.csdn.net/funboy88/article/details/4135501</guid><author>funboy88</author><pubDate>Wed, 29 Apr 2009 10:15:00 +0800</pubDate><description><![CDATA[ 体积小（v1.2.3 15kb）◦丰富的DOM选择器(CSS1-3 + XPath) ◦跨浏览器（IE6,FF,Safari,Opera）◦链式代码◦强大的事件、样式支持◦强大的AJAX功能◦易于扩展，插件丰富jQuery的构造函数接收四种类型的参数： jQuery(expression,context) jQuery(html) jQuery(elements) jQuer]]></description><category></category></item></channel></rss>