[转] MVC3系列~Html.BeginForm与Ajax.BeginForm

Posted by & filed under Uncategorized.

Html.BeginForm与Ajax.BeginForm都是MVC架构中的表单元素,它们从字面上可以看到区别,即Html.BeginForm是普通的表单提交,而Ajax.BeginForm是支持异步的表单提交,这对于我们开发者来说是一个福音,我们不用再自己去用JQ代码了,直接用MVC自代的Ajax.BeginForm就可以很容易的完成一个异步的表单提交动作。 Html.BeginForm的原型解释:

Ajax.BeginForm异步表单原型解释

下面看一下Ajax.BeginForm的例子,一个用户登陆的DEMO View代码:

Controller层代码如下:

表单提交后,页面效果如下: 需要注意的是,表单中的按钮在异步表单中也是Submit类型,如果是异步表单,引入的JS文件需要有jquery.unobtrusive-ajax.min.js,在这项目的scripts目录已经存在。 Read more […]

[转] 三大高级排序

Posted by & filed under Uncategorized.

三大高级排序 1、堆排序 堆排序适合于数据量非常大的场合(百万数据)。 堆排序不需要大量的递归或者多维的暂存数组。 这对于数据量非常巨大的序列是合适的。 比如超过数百万条记录,因为快速排序,归并排序都使用递归来设计算法, 在数据量非常大的时候,可能会发生堆栈溢出错误。 堆排序会将所有的数据建成一个堆,最大的数据在堆顶, 然后将堆顶数据和序列的最后一个数据交换。 接下来再次重建堆,交换数据,依次下去,就可以排序所有的数据。

2、归并排序 归并排序先分解要排序的序列,从1分成2,2分成4,依次分解, 当分解到只有1个一组的时候,就可以排序这些分组, 然后依次合并回原来的序列中,这样就可以排序所有数据。 合并排序比堆排序稍微快一点,但是需要比堆排序多一倍的内存空间, 因为它需要一个额外的数组。

3、快速排序 快速排序是一个就地排序,分而治之,大规模递归的算法。 从本质上来说,它是归并排序的就地版本。 快速排序可以由下面四步组成。 (1) Read more […]

[转] C#中那些[举手之劳]的性能优化

Posted by & filed under Uncategorized.

隔了很久没写东西了,主要是最近比较忙,更主要的是最近比较懒…… 其实这篇很早就想写了 工作和生活中经常可以看到一些程序猿,写代码的时候只关注代码的逻辑性,而不考虑运行效率 其实这对大多数程序猿来说都是没有问题的 不过作为一只有理想的CodeMonkey,我还是希望给大家分享一些性能优化心得   曾经在网上听过这样一句话 程序的可读性和性能是成反比的 我非常赞同这句话,所以对于那些极度影响阅读的性能优化我就不在这里赘述了 今天主要说的就是一些举手之劳即可完成的性能优化    减少重复代码 这是最基本的优化方案,尽可能减少那些重复做的事,让他们只做一次 比较常见是这种代码,同样的Math.Cos(angle) Read more […]

[转] ASP.NET是如何在IIS下工作的

Posted by & filed under Uncategorized.

ASP.NET与IIS是紧密联系的,由于IIS6.0与IIS7.0的工作方式的不同,导致ASP.NET的工作原理也发生了相应的变化。   IIS6(IIS7的经典模式)与IIS7的集成模式的不同 IIS6的运行过程: 分析上图可知: 在 User Mode 下,http.sys 接收到 http request,然后它会根据 IIS 中的 Metabase 查看基于该 Request 的 Application 属于哪个 Application Pool, 如果该 Application Pool 不存在,则创建之。否则直接将 request 发到对应 Application Pool 的 Queue中。每个 Application Pool 对应着一个 Worker Process — w3wp.exe,(运行在 User Mode 下)。 在 IIS Metabase 中维护着 Application Pool 和 Worker Process 的Mapping。WAS(Web Administrative Service)根据这样一个 mapping,将存在于某个 Read more […]