2012年4月19日   浏览

大叔手记(14):利用Routing特性提高ASP.NET MVC3站点的SEO权重

简介我们在开发互联网程序的时候,有个很重要的事情就是做搜索引擎优化(SEO),我们都知道ASP.NET MVC程序提供了友好的URL以及永久重定向的支持,这些友好的URL是利用Routing系统的特性来支持的,但是在这个Routing里有个问题,就是多个不同的地址和指向同一个action方法,那对于搜索引擎来说就意味着你的站点有很多地址的内容都是重复的。 本章内容将展示如果解决这一问题。 正文对

    内容篇幅较长,请点击这里阅读全文
posted @ 2012-04-19 10:06 阅读(892) | 评论 (0) |收藏

【翻译】使用Lazy和抽象包装类延迟加载复杂的系统参数

.Net Framework4.0里的Lazy<T>虽然提供给我们很好用的延迟加载功能,但是其中需要load的值和值的loader代码是单独分开的,使用起来不是很方便,有没有什么好方法来解决这一问题呢?   原始Lazy实现的问题: 如下代码是我们常用的Lazy代码 问题是,如果我们需要使用Lazy来load多个参数或者属性,那维护起来就非常麻烦,如果能将这些参数

    内容篇幅较长,请点击这里阅读全文
posted @ 2012-04-19 09:53 阅读(900) | 评论 (0) |收藏

2012年3月22日   浏览

ASP.NET MVC中使用jQuery时的浏览器缓存问题

介绍 尽管jQuery在浏览器ajax调用的时候对缓存提供了很好的支持,还是有必要了解一下如何高效地使用http协议。 首先要做的事情是在服务器端支持HTTP GET,定义不同的URL输出不同的数据(MVC里对应的就是action)。如果要使用同一个地址获取不同的数据,那就不对了,一个HTTP POST也不行因为POST不能被缓存。许多开发人员使用POST主要有2个原因:明确了数据不能被缓存,

    内容篇幅较长,请点击这里阅读全文
posted @ 2012-03-22 11:06 阅读(2074) | 评论 (0) |收藏

2012年3月20日   浏览

深入理解JavaScript系列(33):设计模式之策略模式

介绍 策略模式定义了算法家族,分别封装起来,让他们之间可以互相替换,此模式让算法的变化不会影响到使用算法的客户。 正文 在理解策略模式之前,我们先来一个例子,一般情况下,如果我们要做数据合法性验证,很多时候都是按照swith语句来判断,但是这就带来几个问题,首先如果增加需求的话,我们还要再次修改这段代码以增加逻辑,而且在进行单元测试的时候也会越来越复杂,代码如下: 那如何来避免上述代码

    内容篇幅较长,请点击这里阅读全文
posted @ 2012-03-20 15:43 阅读(1018) | 评论 (2) |收藏

深入理解JavaScript系列(34):设计模式之命令模式

介绍 命令模式(Command)的定义是:用于将一个请求封装成一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或者记录请求日志,以及执行可撤销的操作。也就是说改模式旨在将函数的调用、请求和操作封装成一个单一的对象,然后对这个对象进行一系列的处理。此外,可以通过调用实现具体函数的对象来解耦命令对象与接收对象。 正文 我们来通过车辆购买程序来展示这个模式,首先定义车辆购买的具体操作类

    内容篇幅较长,请点击这里阅读全文
posted @ 2012-03-20 15:16 阅读(881) | 评论 (0) |收藏

深入理解JavaScript系列(35):设计模式之迭代器模式

介绍

迭代器模式(Iterator):提供一种方法顺序一个聚合对象中各个元素,而又不暴露该对象内部表示。

迭代器的几个特点是:

  1. 访问一个聚合对象的内容而无需暴露它的内部表示。
  2. 为遍历不同的集合结构提供一个统一的接口,从而支持同样的算法在不同的集合结构上进行操作。
  3. 遍历的同时更改迭代器所在的集合结构可能会导致问题(比如C#的foreach里不允许修改item)。
正文

一般的迭代,我们至少要有2个方法,hasNext()和Next(),这样才做做到遍历所有对象,我们先给出一个例子:



使用方法和平时C#里的方式是一样的:



当然,你也可以通过额外的方法来重置数据,然后再继续其它操作:



jQuery应用例子

jQuery里一个非常有名的迭代器就是$.each方法,通过each我们可以传入额外的function,然后来对所有的item项进行迭代操作,例如:



总结

迭代器的使用场景是:对于集合内部结果常常变化各异,我们不想暴露其内部结构的话,但又响让客户代码透明底访问其中的元素,这种情况下我们可以使用迭代器模式。

posted @ 2012-03-20 11:36 阅读(778) | 评论 (0) |收藏

深入理解JavaScript系列(36):设计模式之中介者模式

前言 这两天有些“高手”质疑JavaScript里是否应该有设计模式,甚至讨论到动态语言不应该有设计模式,或者不应该去乱套用设计模式,一直没参与讨论,因为始终觉得自己对这些研究不深,也没尝试过深入理解编译器,词法解析等,更不要提去评论某种语言高不高级了,本人一直处在应用这个level上,没达到那个高级别,所以也不敢参与讨论,以后也不会对这些讨论给予任何评价和回复,呵呵,级别不够。 不管怎么说,

    内容篇幅较长,请点击这里阅读全文
posted @ 2012-03-20 11:24 阅读(809) | 评论 (0) |收藏