05 2015 档案
摘要:IEqualityComparer<T>接口的对象的主要作用在于自定义判断两个对象是否相等。 其中最常用的方法: bool Equals(T x, T y); 实现该方法用于比较两个对象是否相等。如果指定的对象相等,则为 true;否则为 false。 代码示例: class Program { s
阅读全文
摘要:1、Where 操作符用于限定输入集合中的元素,将符合条件的元素组织声称一个序列结果。 2、Select 操作符用于根据输入序列中的元素创建相应的输出序列中的元素,输出序列中的元素类型可以与输入序列中的元素类型相同,也可以不同。下面来看看Select方法的原型。 3、SelectMany 操作符用于
阅读全文
摘要:一、LINQ to XML常用成员 LINQ to XML的成员, 属性列表: 属性 说明 Document 获取此 XObject 的 XDocument EmptySequence 获取空的元素集合 FirstAttribute 获取此元素的第一个属性 FirstNode 获取此节点的第一个子节
阅读全文
摘要:IComparer<T>比较两个对象并返回一个值,指示一个对象是小于、等于还是大于另一个对象。 在Linq当中,很多扩展方法接受一个实现IComparer<T>接口的实例的对象作为参数,因此想明白Linq中很多个方法的IComparer<TKey> comparer参数的意义,首先要对此接口有个认识
阅读全文
摘要:非延时标准查询操作符是指不具备延时查询特性的标准查询操作符,这些操作符一般用于辅助延时标准查询操作符使用。 1、ToArray操作符 ToArray操作符用于将一个输入序列转换成一个数组。 方法原型: public static TSource[] ToArray<TSource>(this IEn
阅读全文
摘要:一、一个字符串,一个字符串数组。判断字符串数组里的元素出现在字符串中的有几个。 class Program { static void Main(string[] args) { string str = "你在他乡还好吗?"; string[] WordList = new string[] {"
阅读全文
摘要:这篇文章决定对最近一个单机版Web程序用到的东西总结一下。 一、反射Linq之OrderBy 动态Linq结合反射对某字段排序: namespace 动态Linq { class Program { static void Main(string[] args) { List<Person> Lis
阅读全文
摘要:WebClient类提供向 URI 标识的资源发送数据和从 URI 标识的资源接收数据的公共方法。 其实就相当于创建一个请求客户端。可以获取网页和各种各样的信息,包括交互。 通过MSDN来看看WebClient类提供的功能。 一、属性 1、BaseAddress 获取或设置 WebClient 发出
阅读全文
摘要:最近在学HttpRequest类搞文件上传的时候看到Request.Files返回了HttpFileCollection 这个类的一个对象,这个类用于获取浏览器上传的文件集合,在文件上传的时候可以通过这个集中获取上传的文件内容,文件名等信息。以下来详细了解一下这个类。 以下给出常用属性与公用方法。
阅读全文
摘要:在研究HttpRequest的时候,搞文件上传的时候,经常碰到返回HttpPostedFile对象的情况,这个对象才是真正包含文件内容的东西。 经常要获取的最重要的内容是FileName属性与SavaAs方法,现在我们来详细看看这个东西。 一、常用属性 ContentLength: 获取上载文件的大
阅读全文
摘要:一、最近在研究HttpRequest类的时候,发现返回的cookie集合是存在放这个类的对象的。而实际上这个类只是一个HttpCookie对象的集合,关于HttpCookie类可以查看http://www.cnblogs.com/kissdodog/archive/2013/01/08/285193
阅读全文
摘要:在Asp.net WebForm中,Server对象是HttpServerUtility类的实例。看下图: 而在Asp.net MVC中,Server对象是HttpServerUtilityBase对象。 来看下HttpServerUtility类提供的功能。顺便以一个ashx页面来展示一下该类的作
阅读全文
摘要:最近在研究HttpRequest类,发现里面的很多属性都返回一个NameValueCollection对象,今天再来了解一下这个神秘的对象。 随便写了个例子,发现跟HashTable类似。但是这个东西有点怪,就是当存在一个key的时候,你在add的话,会追加进当前key中。而不是简单替换。 Name
阅读全文
摘要:HttpCookie类专门由C#用于读取和写入Cookie的类。 Cookie的详细说明见:http://www.cnblogs.com/kissdodog/archive/2013/01/02/2842387.html jQuery处理Cookie见:http://www.cnblogs.com/
阅读全文
摘要:1、Application与Session的区别 Application对象:实现程序级别的数据共享。 Session对象:实现会话级别的数据共享。 当需要整个程序级别的共享信息时,可以使用Application对象。例如需要设计一个计数器来统计访问系统的所有人数,或者在程序开始和结束时记录时间等。
阅读全文
摘要:一、会话状态Session Session用于服务器端状态管理,使用Session之后,每个客户端都可以将实际的数据保存在服务器上,对于每个客户端的数据,将会生成一个对应的唯一的key(保存在客户端)。客户端与服务器端就是通过这个key来确认客户端的身份,通常这个key为SessionID。 一般情
阅读全文
摘要:System.IO.Path为路径的操作封装了很多很有的东西,利用该类提供的方法能够快速处理路径操作的问题。下面详细了解一下。 1、属性 属性太复杂了,反映什么系统平台的信息,看不懂,等以后看得懂了再补充。 2、方法 ChangeExtension 更改路径字符串的扩展名。 Combine 合并两个
阅读全文
摘要:File是一个静态类,常用于文件操作,读取,修改文件等等。File类的大部分方法最终都是转换为流(Stream)的操作,只不过是.net提取帮你封装好了这些常用的流。并且会自动清理占用的资源。 例如:下面通过反编译来了解下一个File里的一个普通的方法ReadAllText()的源代码: [Secu
阅读全文
摘要:FileAttributes枚举是一个专门用于标记硬盘上的文件属性的枚举,枚举的说明在这里:http://www.cnblogs.com/kissdodog/archive/2013/01/16/2863515.html 源代码附在最下面。最源代码看来,我们可以得出的信息,这是一个标志枚举。此Fil
阅读全文
摘要:FileMode枚举是一个简单枚举,用于指定操作系统打开文件的方式。 枚举成员 成员值 描述 CreateNew 1 指定操作系统应创建新文件,如果文件存在则引发异常。 Create 2 指定操作系统创建新文件,如果文件已存在则覆盖之。 OPen 3 指定 操作系统应打开现有文件,如果文件不存在则抛
阅读全文
摘要:FileAccess用于控制对文件的读访问、写访问或读/写访问的常熟。从源代码可以看到FileAccess是一个简单枚举。 枚举成员 成员值 描述 Read 1 对文件的读访问,拥有读取权限。 Write 2 对文件的写访问,拥有写入权限。 ReadWrite 3 对文件的读访问和写访问,拥有读取和
阅读全文
摘要:MemoryStream 是一个特例,MemoryStream中没有任何非托管资源,所以它的Dispose不调用也没关系。托管资源.Net会自动回收 MemoryStream继承自Stream类。内存流的好处是指针可以晃来晃去,也就是支CanSeek,Position,Seek()。任意读其中一段。
阅读全文
摘要:如果要在压缩过程中检查错误或要与其他操作系统所用程序共享压缩数据,则要是用GZipStream类。GZipStream类包含是用GZip数据格式进行压缩和解压缩文件的方法,该类不能用于解压缩大于4GB的文件。 一、属性 BaseStream 获取对基础流的引用。 CanRead 获取一个值,该值指示
阅读全文
摘要:BufferedStream常用于对其他流的一个封装,它必须和其他流结合一起使用。MemoryStream将所有的内容都放入内存中,而BufferedStream不是。BufferedStream在基础流写入内存中能够提高读取与写入速度。但是缓冲区设置的大小对性能也有影响,默认值是4096字节,并能
阅读全文
摘要:DeflateStream是另外一种压缩与解压缩流,使用方法与GZipStream类似,而且压缩之后的带下也差不多。 一、属性 BaseStream 获取对基础流的引用。 CanRead 获取一个值,该值指示流是否支持在解压缩文件的过程中读取文件。 (重写 Stream..::.CanRead。)
阅读全文
摘要:StreamReader实现了抽象基类TextReader类,而StreamWriter实现了抽象基类TextWriter。分别用于对流的读取与写入。 先从StreamReader说起 一、构造方法 StreamReader(Stream) 为指定的流初始化 StreamReader 类的新实例。
阅读全文
摘要:MySQL数据库提供了很多函数包括: 数学函数; 字符串函数; 日期和时间函数; 条件判断函数; 系统信息函数; 加密函数; 格式化函数; 一、数学函数 数学函数主要用于处理数字,包括整型、浮点数等。 函数 作用 ABS(x) 返回x的绝对值 SELECT ABS(-1) -- 返回1 CEIL(x
阅读全文
摘要:使用FileStream能够对对系统上的文件进行读、写、打开、关闭等操作。并对其他与文件相关的操作系统提供句柄操作,如管道,标准输入和标准输出。读写操作可以指定为同步或异步操作。FileStream对输入输出进行缓冲,从而提高性能。 FileStream 对象支持使用 Seek 方法对文件进行随机访
阅读全文
摘要:一、简介 在Asp.net MVC实现的Comet推送的原理很简单。 服务器端:接收到服务器发送的AJAX请求,服务器端并不返回,而是将其Hold住,待到有东西要通知客户端时,才将这个请求返回。 客户端:请求异步Action,当接收到一个返回时,立即又再发送一个。 缺点:会长期占用一个Asp.net
阅读全文
摘要:一、路由 1、HttpApplication中的ASP.NET MVC .Net 3.5 引入了System.Web.Routing程序集,通过Url Routing的机制,可以实现将一个虚拟路径的请求映射到一个Action方法上。 在Asp.net MVC中,Route类指定Asp.net应用程序
阅读全文
摘要:一、MVC部署后直接显示文件列表,路由未生效,效果如下: 处理方法为:Web.Config修改一下配置: <system.webServer> <validation validateIntegratedModeConfiguration="false"/> <modules runAllManag
阅读全文
摘要:一、系统过滤器使用说明 1、OutputCache过滤器 OutputCache过滤器用于缓存你查询结果,这样可以提高用户体验,也可以减少查询次数。它有以下属性: Duration:缓存的时间,以秒为单位,理论上缓存时间可以很长,但实际上当系统资源紧张时,缓存空间还是会被系统收回。 VaryByPa
阅读全文
摘要:一、路由规则说明 先来看MVC中的默认路由的说明 "{controller}/{action}/{id}", // URL with parameters 对于Url /Home/Index/1 匹配结果是: controller : "Home" action : "Index" Id : "1"
阅读全文
摘要:在WebForm,获取提交表单的值一般都是Request.Form["Title"]这样的方式。在MVC中,提供了模型绑定机制。让后台获取表单或Url中的参数变得更加简单。 一、基本模型绑定 你可以直接在参数中用字符串,整型变量,实体或者是List<实体>的方式获取表单提交的参数。 参数中的这些东西
阅读全文
摘要:前一篇说了MVC数据验证的例子,这次来详细说说各种各样的验证注解。System.ComponentModel.DataAnnotations 一、基础特性 一、Required 必填选项,当提交的表单缺少该值就引发验证错误。 二、StringLength 指定允许的长度 指定最大长度: [Strin
阅读全文
摘要:一、Html.BeginForm <form>标签 //视图代码 @using (Html.BeginForm("search", "home", FormMethod.Get),new { target="_black",@class="form1" }) { <input type="text"
阅读全文
摘要:一、所有的Controller都继承自System.Web.Mvc.Controller 目前ASP.NET MVC3默认提供了多种ActionResult的实现,在System.Web.Mvc命名空间里。 其中ActionResult是一个抽象类,所有一下的Result都继承自它,因此如果一个Ac
阅读全文
摘要:一、Razor基础 1、单行代码书写 @代码 2、多行代码书写 @{ //@加个大括号就可以在里面写C#代码了。 C#代码第一行 C#代码第二行 } 3、Razor模板引擎会自动判别代码块,但是当代码存在二义性的时候,可以用小括号澄清 @{ string name = "张三"; } // @nam
阅读全文
摘要:一、公共模板 1、@RenderBody() 在网站公用部分通过一个占位符@RenderBody()来为网站独立部分预留一个位置。然后私有页面顶部通过@{Layout="公用模板路径"}来引入公用模板,并在自身放到公用模板的位置。同时也可以设置ViewData或ViewBag设置网站标题,关键词等信
阅读全文
摘要:一、视图引入命名空间的设置 之前经常写这样的代码,而且每个页面都要写: @model IEnumerable<MvcStart.Models.People_Model> 其实有一种很方便的方法,可以通过配置Views文件夹里的Web.config来简化代码。Views文件夹里的Web.config里
阅读全文
摘要:一、区别与联系 ViewData 和 TempData 都可以传递弱类型数据,区别如下:TempData 只在当前 Action 中有效,生命周期和 View 相同;保存在Session中,Controller每次执行请求的时候,会从Session中先获取TempData,而后清除Session,获
阅读全文
摘要:一、设计场景 1、设计性能测试场景 Controller有两个视图:设计(Design)视图和运行(Run)视图。启动Controller,在Controller主界面里,我们可以看到这两个视图。 1、设计视图 设计视图显示场景中的所有Vuser组/脚本的列表、负载生成器(Load Generato
阅读全文
摘要:用户行为模拟器简称VU,VU通过运行VU脚本模拟了用户对软件的操作行为。VU是基于网络协议的。很明显,被测服务器是通过各种各样的网络协议与客户端打交道的。VU要“骗过”被测服务器,当然就要遵守这些协议,按规矩、按步骤来执行动作,否则就会吃“闭门羹”。 基于网络协议的脚本的一个好处是,我们可以使用相对
阅读全文
摘要:一、基础函数简介 在VU左边导航栏中,有三个LoadRunner框架函数,分别是vuser_init()、Action()、vuser_end()。这三个函数存在于任何Vuser类型的脚本中。 vuser_init:虚拟用户的初始化函数,一般将用户初始化的操作放在这里,如登录操作、分配内存等。在做u
阅读全文
摘要:LoadRunner是一个用压力测试的软件。这东西比较难上手,光安装就非常麻烦。好不容易一步步跟着安装说明安装好之后,还是用不了。 记录一个问题如下: 导入脚本的时候报错fail to create on online ,无效指针: 关掉杀毒软件,360之类的,然后修复安装 就是在控制面板-程序中找
阅读全文
摘要:计划缓冲的基本目的是通过重用执行计划来改进性能。因为,确认执行计划确实可重用很重要。因为即席查询的计划可重用性效率低下,所以一般建议尽可能依赖预定义工作负载技术。为了确保计划缓冲的高效实用,遵循以下建议。 明确地参数化查询的可变部分; 使用存储过程实现业务功能; 使用sp_executesql避免存
阅读全文
摘要:查询计划hash和查询hash 在SQL Server 2008中引入的围绕执行计划和缓冲的新功能被称为查询计划hash和查询hash。这是使用针对查询或查询计划的算法来生成二进制hash值的二进制对象。 可以从sys.dm_exec_query_stats或sys.dm_exec_requests
阅读全文
摘要:当查询被提交时,SQL Server检查过程缓冲中匹配的执行计划,如果没有找到,SQL Server执行查询编译和优化以生成新的执行计划。 如果执行计划存在于缓冲中,它在私有的执行上下文中重用,这节约了CPU的编译和优化周期。 具有不同过滤条件的相同查询提交到SQL Server时,如: SELEC
阅读全文
摘要:一、执行计划缓冲 优化器生成的执行计划保存在SQL Server内存池中的一个特别部分,被称为计划缓冲或过程缓冲。过程缓冲是SQL Server缓存的一部分。在缓冲中保存计划可使SQL Server避免在重新提交相同的查询时再次通过整个查询优化过程运行。SQL Server支持不同的技术,如:计划缓
阅读全文
摘要:SQL Server使用许多技术来优化资源消耗: 基于语法的查询优化; 无用计划匹配以避免对简单查询的深度优化; 根据当前分布统计的索引和连接策略; 多阶段的查询优化以控制优化开销; 执行计划缓冲以避免重新生成执行计划; 以上技术按以下顺序执行: 解析器; 代数化器; 查询优化器; 执行计划生成,缓
阅读全文
摘要:为了最简单地说明问题,我特地设计了一张这样的表。 一、GROUP BY单值规则 规则1:单值规则,跟在SELECT后面的列表,对于每个分组来说,必须返回且仅仅返回一个值。 典型的表现就是跟在SELECT后面的列,如果没有使用聚合函数,必须出现在GROUP BY子句后面。 如下面这个查询报错: 因为对
阅读全文
摘要:公用表表达式(CTE) 在编写T-SQL代码时,往往需要临时存储某些结果集。前面我们已经广泛使用和介绍了两种临时存储结果集的方法:临时表和表变量。除此之外,还可以使用公用表表达式的方法。公用表表达式(Common Table Expression)是SQL Server2005版本的引入的一个特性。
阅读全文
摘要:操作结果集 为了配合测试,特地建了两个表,并且添加了一些测试数据,其中重复记录为东吴的人物。 表:Person_1魏国人物 表:Person_2蜀国人物 A、Union形成并集 Union可以对两个或多个结果集进行连接,形成“并集”。子结果集所有的记录组合在一起形成新的结果集。 1、限定条件 要是用
阅读全文
摘要:嵌套查询的意思是,一个查询语句(select-from-where)查询语句块可以嵌套在另外一个查询块的where子句中,称为嵌套查询。其中外层查询也称为父查询,主查询。内层查询也称子查询,从查询。 嵌套查询的工作方式是:先处理内查询,由内向外处理,外层查询利用内层查询的结果嵌套查询不仅仅可以用于父
阅读全文
摘要:一、关联子查询-查日期最新列 前天在工作中遇到一条非常有用的SQL语句,想了好久愣是没搞出来。今天将这个问题模拟出来:先看表 需求是,对于每个人,仅显示时间最新的那一条记录。 答案如下: select * from record as a where not exists (select null
阅读全文
摘要:一、连接查询简介 连接查询中用来连接连个表的条件称为连接条件或连接谓词。其形式为: [<表1>].<列名1><连接运算符>[<表2>].<列2> 常见的连接运算符包括 1、比较运算符:=、>、<、>=、<=、!=、between和and。 2、逻辑运算符:not、and、or。 3、使用betwee
阅读全文
摘要:表中数据的变化牵一发而动全身,会同时导致到索引中数据的变化。因此如果查询语句不需要索引,就应该删除无用的索引以提高效率。 一、INSERT语句 1、基本插入语句 insert用于向表中输入数据,其具体的语法结构如下: INSERT INTO 表名称 VALUES (值1, 值2,....) 我们也可
阅读全文
摘要:一、语法结构 select select_list [ into new_table ] from table_source [ where search_condition ] [ group by broup_by_expression ] [ having search_condition ]
阅读全文
摘要:一、查询设计的建议 在一些情况下,查询结构使优化器不能选择最好的处理策略。知道何时发生这种情况以及如何避免它是很重要的。这里主要介绍如下几点: 在小的结果集上操作; 有效使用索引; 避免优化器提示; 使用域和参照完整性; 避免资源密集型的查询; 减少网络传输数量; 减少事务开销; 二、在小结果集上操
阅读全文
摘要:SQL Server提供了一个被称为数据库引擎调整顾问的工具。这个工具帮助为一个给定的工作负载确认一组最优的索引,而不需要对数据库结构或SQL Server内部结构的深入了解。它还能为一小部分有问题的查询建议调整选项。除了好处该工具也有坏处。应该正确地使用。 一、数据库引擎调整顾问机制 可以直接选择
阅读全文
摘要:一、分析查询执行计划 执行计划的阅读顺序为,从右到左,从上到下。 由执行计划表示的查询执行的一些特征如下: 如果查询由多个查询的批组成,每个查询的执行计划按照执行的顺序显示。批中的每个执行计划将有一个相对的估算开销,整个批的总开销为100%。 执行计划中的每个图标代表一个操作符。它们每个都有一个相对
阅读全文
摘要:SQL Server有3种连接类型: Hash连接; 合并连接; 嵌套循环连接; 在许多影响小的行集的简单查询中,嵌套循环连接远远优于hash和合并连接。用于查询的连接类型由优化器动态决定。 下面我来先来建立两张简单的表。Province(十条数据)=》PersonTenThousand(1万数据)
阅读全文
摘要:尽管查询的执行计划提供了详细的处理策略的单独步骤涉及的估计相对开销,但是它没有提供查询实际的CPU使用、磁盘读写或持续时间等开销。 还有其他比运行Profiler更直接手机性能数据的方法 一、客户统计 客户统计将计算机作为服务器的一个客户端,从这个角度出发去捕捉执行信息。这意味着任何记录事件包括通过
阅读全文
摘要:当SQL Server的性能变差时,最可能发生的是以下两件事: 首先,某些查询产生了系统资源上很大的压力。这些查询影响整个系统的性能,因为服务器无法足够快速地服务其他SQL查询。 另外,开销较大的查询阻塞了其他请求相同数据库资源的查询,进一步降低了这些查询的性能。优化开销较大的查询不仅改进它们本身的
阅读全文
摘要:一、SQL Profiler工具简介 SQL Profiler是一个图形界面和一组系统存储过程,其作用如下: 图形化监视SQL Server查询; 在后台收集查询信息; 分析性能; 诊断像死锁之类的问题; 调试T-SQL语句; 模拟重放SQL Server活动; 也可以使用SQL Profiler捕
阅读全文
摘要:要理解执行计划,怎么也得先理解,那各种各样的名词吧。鉴于自己还不是很了解。本文打算作为只写懂的,不懂的懂了才写。 在开头要先说明,第一次看执行计划要注意,SQL Server的执行计划是从右向左看的。 名词解析: 扫描:逐行遍历数据。 先建立一张表,并给大家看看大概是什么样子的。 CREATE TA
阅读全文
摘要:元数据函数 1、获取数据库标识符DB_ID DB_ID函数用于获取当前数据库的唯一ID(int数据类型),数据库ID用于服务器上唯一区分书库。 语法结构: DB_ID (['database_name']) 参数中的database_name是sysname类型的数据库名称,为可选参数。如果没有指定
阅读全文
摘要:数学函数 1、计算绝对值ABS ABS函数对一个数值表达式结果计算绝对值(bit数据类型除外),返回整数。 语法结构: ABS(数值表达式) 返回值:与数值表达式类型一致的数据 示例: SELECT ABS(-1) --输出 1 2、获取大于等于最小整数值Celling CEILING函数返回大于等
阅读全文
摘要:文本和图像函数 1、查找特定字符串PATINDEX 语法与字符串的patindex一样。 2、获取文本指针TEXTPTR SQLServer在存储文本类型(ntext、text)和图像数据类型(image)时,默认情况是与常见的基本数据类型(如char、int等)这样的数据时单独存储的,也就是说,如
阅读全文
摘要:字符串函数 在开发T-SQL时,经常会需要对字符串进行各种各样的操作,下面介绍常用的字符串函数。 1、获取字符的ASCII码 ASCII ASCII码是对字符的标准编码。要获取字符的ASCII码就可以通过调用ASCII函数来实现。 语法结构: ASCII(espression) 这里的express
阅读全文
摘要:日期时间函数 1、获取当前日期GetDate getdate()函数以datetime数据类型的格式返回当前SQLServer服务器所在计算机的日期和时间。其语法格式为getdate()。返回值舍入到最近的秒小数部分,精度为.333秒数据库十七偏移量不包含在内。 示例: select getdate
阅读全文
摘要:聚合函数对一组值计算后返回单个值。除了count(统计项数)函数以外,其他的聚合函数在计算式都会忽略空值(null)。所有的聚合函数均为确定性函数。即任何时候使用一组相同的输入值调用聚合函数执行后的返回值都是相同的,无二义性。T-SQL提供的聚合函数一共有13个之多。 聚合函数通常会在下列场合使用:
阅读全文
摘要:1、创建统计语法: CREATE STATISTICS statistics_name ON { table_or_indexed_view_name } ( column [ ,...n ] ) [ WHERE <filter_predicate> ] [ WITH [ [ FULLSCAN |
阅读全文
摘要:SQL Server允许用户手工地控制单独数据库中的统计维护。SQL Server的4个主要的控制紫铜统计的维护的配置如下: 在无索引的列上新建统计(自动创建统计); 更新现有统计(自动更新统计); 用于收集统计的采样度; 现有统计的异步更新(自动异步更新统计); 可以在数据库级别(所有表上的所有索
阅读全文
摘要:非索引列上的统计 有时候,可能在连接或过滤条件中的列上没有索引。即使对这种非索引列,如果查询优化器知道这些列的数据分布(统计),它也很可能做出最佳的选择。 除了索引上的统计,SQL Server可以在没有索引的列上建立统计。即使不是索引列,当你开启了SQL Server自动创建统计功能,SQL Se
阅读全文
摘要:一、索引在查询优化中的角色 SQL Server的查询优化器是基于开销的优化器、它通过确认选择性、数据的唯一性以及过滤数据(通过WHERE或JOIN子句)所使用的列来决定最佳的数据访问机制。统计与索引一同存在,但是它们也作为断言的一部分存在于没有索引的列上。 作为谓词引用的列中数据分布的最新信息帮助
阅读全文
摘要:统计是一组存储为柱状图的信息。柱状图是显示数据落入不通分类中的频率的一种统计结构。SQL Server存储的柱状图包括多大200行的列和索引键(或多列索引键的第一列)的数据分布采样。在两个连续采样值之间的索引键值范围上的信息被称为步骤。这些步骤由200个存储值之间的不通大小间隔组成。 一个步骤提供以
阅读全文
摘要:在有大量事务的数据库中,表和索引随着时间的推移而碎片化。因此,为了增进性能,应该定期检查表和索引的碎片,并对具有大量碎片的进行整理。 1、确定当前数据库中所有需要分析碎片的表。 2、确定所有表和索引的碎片。 3、考虑一下因素以确定需要进行碎片整理的表和索引。 高的碎片水平-avg_fragmenta
阅读全文
摘要:一、索引的图形界面操作 SQL Server非常强大的就是图形界面操作。关于索引方面也一样那么强大,很多操作比如说重建索引啊,查看各种统计信息啊,都能够通过图形界面快速查看和操作,下面来看看SQL Server索引方面的GUI操作。 二、索引统计信息的图形界面操作
阅读全文
摘要:一、索引压缩 数据和索引压缩在SQL Server2008被引入。压缩一个索引意味着将在一个页面中获得更多的关键字信息。这可以造成重大的性能改进,因为存储索引需要的页面和索引级别更少。因为索引中的键值被压缩和解压缩,也将造成CPU和内存的开销,所以这并不是适合所有索引的方案。 默认情况下,索引将不会
阅读全文
摘要:一、索引视图基本概念 索引视图实际上是一种将一组唯一值“物化”为群集索引形式的视图,所为物化就是几乎和表一样,其数据也是会存储一份的(会占用硬盘空间,但是查询速度快,例如可以将count(),sum()等值设在索引视图中)。其优点是它在提取视图背后的信息方面提供了一个非常快的查找方法。在第一个索引(
阅读全文
摘要:聚集索引、非聚集索引、非聚集唯一索引 我们都知道建立适当的索引能够提高查询速度,优化查询。先说明一下,无论是聚集索引还是非聚集索引都是B树结构。 聚集索引默认与主键相匹配,在设置主键时,SQL Server会默认在主键列创建聚集索引。但是可以手动更改为在任意一个列创建聚集索引,然后在另一个字段或多个
阅读全文
摘要:一、非聚集索引维护 非聚集索引的行定位器值保持相同的聚集索引值,即使该聚集索引列物理上重新定位后,也是如此。 为了优化这个维护开销,SQL Server添加一个指向旧数据页的指针,以在页面分割之后指向新的数据页面,而不是更新所有相关非聚集索引的行定位器。这样,虽然降低了非聚集索引的维护开销,但是增加
阅读全文
摘要:在SQL Server中,非聚集索引其实可以看做是一个含有聚集索引的表,但相对实际的表来说,非聚集索引中所存储的表的列数要少得多,一般就是索引列,聚集键(或RID)。非聚集索引仅仅包含源表中的非聚集索引的列和指向实际物理表的指针。 一、非聚集索引之INCLUDE 非聚集索引其实可以看做一个含有聚集索
阅读全文
摘要:一、书签查找的概念 书签可以帮助SQL Server快速从非聚集索引条目导向到对应的行,其实这东西几句话我就能说明白。 如果表有聚集索引(区段结构),那么书签就是从非聚集索引找到聚集索引后,利用聚集索引定位到数据。此处的书签就是聚集索引。如果表没有聚集索引(堆结构)。那么扫描非聚集索引后,通过RID
阅读全文
摘要:实际上,索引的维护主要包括以下两个方面: 页拆分 碎片 这两个问题都和页密度有关,虽然两者的表现形式在本质上有所区别,但是故障排除工具是一样的,因为处理是相同的。 对于非常小的表(比64KB小得多),一个区中的页面可能属于多余一个的索引或表 这被称为混合区。如果数据库中有太多的小表,混合区帮助SQL
阅读全文
摘要:从CREATE开始 通过显式的CREATE INDEX命令 在创建约束时作为隐含的对象 随约束创建的隐含索引 当向表中添加如下两种约束之一时,就会创建隐含索引。 主键约束(聚集索引) 唯一约束(唯一索引) 一、CREATE INDEX语法 CREATE INDEX语句所做的事情与其听上去一样-用于在
阅读全文
摘要:一、存储结构 在SQL Server中,有许多不同的可用排列规则选项。 二进制:按字符的数字表示形式排序(ASCII码中,用数字32表示空格,用68表示字母"D")。因为所有内容都表示为数字,所以处理起来速度最快,遗憾的是,它并不总是如人们所想象,在WHERE子句中进行比较时,使用该选项会造成严重的
阅读全文
摘要:聚集索引的叶子页存储的就是表的数据。因此,表行物理上按照聚集索引列排序,因为表数据只能有一种物理顺序,所以一个表只能有一个聚集索引。 当我们创建主键约束时,如果不存在聚集索引并且该索引没有被明确指定为非聚集索引,SQL Server会自动将其创建为唯一的聚集索引,这并不是说主键列就一定是聚集索引,这
阅读全文
摘要:一、目标:编写SQL动态查询 SQL常常和程序代码一起使用。我们通常所说的SQL动态查询,是指将程序中的变量和基本SQL语句拼接成一个完整的查询语句。 string sql = SELECT * FROM Person WHERE Id = $Id 我们期望$Id是一个整型,因此当数据库接收到这个请
阅读全文
摘要:一、目标:整理数据 有的人有强迫症,他们会为一系列数据的断档而抓狂。 一方面,Id为3这一行确实发生过一些事情,为什么这个查询不返回Id为3的这一行?这条记录数据丢失了吗?那个Column到底是什么?我要为这条数据的丢失负责吗? 二、反模式:填充角落 大多数人对于断档的第一反应就是想要填补其中的空缺
阅读全文
摘要:一、目标:恢复或重置密码 每个有密码的程序都会碰到用户忘记密码的情况,现今大多数程序都通过E-mail的回馈机制让用户恢复或者重置密码。这个解决方案有一个前提,这个服务有一个前提,就是这个用户能够访问他在注册时留下的邮箱。 二、反模式:使用明文存储密码 在这种恢复密码的解决方案中,很常见的一个错误是
阅读全文
摘要:一、窗口函数的作用 窗口函数是对一组值进行操作,不需要使用GROUP BY 子句对数据进行分组,还能够在同一行中同时返回基础行的列和聚合列。窗口函数,基础列和聚合列的查询都非常简单。 二、语法格式 窗口函数的语法格式如下: OVER([PARTITION BY value_expression,..
阅读全文
摘要:SQL Server从2005起开始支持xml类型,这个数据类型对于后期的改变非常有用。一对多的关系在后期变成了多对多的关系,XML类型就是一个不错的选择。 1、创建测试数据 创建表 --创建表,包含Xml类型列 CREATE TABLE Person ( Id int, Info xml ) 插入
阅读全文
摘要:一、使用SQL Server全文搜索配置 要使用SQL Server的全文搜索服务,需要进行如下配置。 1、开启全文搜索服务: 2、开启数据库的全文索引功能: --开启数据库的全文搜索功能 EXEC sp_fulltext_database 'enable'; 3、创建全文索引目录: --创建全文索
阅读全文
摘要:触发器可以做很多事情,但也会带来很多问题。使用它的技巧在于在适当的时候使用,而不要在不适当的时候使用它们。 触发器的一些常见用途如下: 弹性参照完整性:实现很多DRI不能实现的操作(例如,跨数据库或服务器的参照完整性以及很多复杂的关系类型)。 创建神级跟踪:这意味写出的记录不仅跟踪大多数当前的数据,
阅读全文
摘要:锁是一种防止在某对象执行动作的一个进程与已在该对象上执行的其他进行相冲突的机制。也就是说,如果有其他人在操作某个对象,那么你旧不能在该对象上进行操作。你能否执行操作取决于其他用户正在进行的操作。 通过锁可以防止的问题 锁可以解决以下4种主要问题: 脏读 非重复性读取 幻读 丢失更新 1、脏读 如果一
阅读全文
摘要:事务全部是关于原子性的。原子性的概念是指可以把一些事情当做一个单元来看待。从数据库的角度看,它是指应全部执行或全部都不执行的一条或多条语句的最小组合。 为了理解事务的概念,需要能够定义非常明确的边界。事务要有非常明确的开始和结束点。SQL Server中的每一条SELECT、INSERT、UPDAT
阅读全文
摘要:一、表变量 表变量在SQL Server 2000中首次被引入。表变量的具体定义包括列定义,列名,数据类型和约束。而在表变量中可以使用的约束包括主键约束,唯一约束,NULL约束和CHECK约束(外键约束不能在表变量中使用)。定义表变量的语句是和正常使用Create Table定义表语句的子集。只是表
阅读全文
摘要:SQL Server系统存储过程也是好几百个,算了,还是写几个常用的。 1、sp_help 查询表的信息 执行存储过程: sp_help Person 显示结果如下: 妈了个B,有了这张图,你还不懂怎么看一张表有那些信息,那哥以后都不学SQL Server了。另外,还有约束,存储过程,自定义函数等等
阅读全文
摘要:CAST和CONVERT都经常被使用。特别提取出来作为一篇文章,方便查找。 CAST、CONVERT都可以执行数据类型转换。在大部分情况下,两者执行同样的功能,不同的是CONVERT还提供一些特别的日期格式转换,而CAST没有这个功能。 既然CONVERT包括了CAST的所有功能,而且CONVERT
阅读全文
摘要:SQL Server系统视图非常的多,因此不可能一个一个地写,我最近一直在想,对于数据库的系统视图应该如何学,但是看了一下目录之后,我呆了,我觉得每个写一次,可能都要花费1个星期的时间,如果对每一个返回的列的作用都了解清楚,那不得了,你至少需要3个月的时间。后来我想了一个,不行,这种学习方法是错误的
阅读全文
摘要:批处理简介 批处理是作为一个逻辑单元的T-SQL语句。如果一条语句不能通过语法分析,那么不会运行任何语句。如果一条语句在运行时失败,那么产生错误的语句之前的语句都已经运行了。 为了将一个脚本分为多个批处理,可使用GO语句。 GO语句的特点: GO语句必须自成一行,只有注释可以再同一行上。 它使得自脚
阅读全文
摘要:分区表简介 分区表是SQL Server2005新引入的概念,这个特性在逻辑上将一个表在物理上分为多个部分。(即它允许将一个表存储在不同的物理磁盘里)。在SQL Server2005之前,分区表实际上是分布式视图,也就是多个表做union操作。 分区表在逻辑上是一个表,而物理上是多个表。在用户的角度
阅读全文
摘要:文件和文件组简介 在SQL Server中,数据库在硬盘上的存储方式和普通文件在Windows中的存储方式没有什么不同,仅仅是几个文件而已。SQL Server通过管理逻辑上的文件组的方式来管理文件。 SQL Server通过文件组对数据文件进行管理。我们看到的逻辑数据库由一个或者多个文件组构成。
阅读全文
摘要:SQL Server数据存储的形式 预读:用估计信息,去硬盘读取数据到缓存。预读100次,也就是估计将要从硬盘中读取了100页数据到缓存。 物理读:查询计划生成好以后,如果缓存缺少所需要的数据,让缓存再次去读硬盘。物理读10页,从硬盘中读取10页数据到缓存。 逻辑读:从缓存中取出所有数据。逻辑读10
阅读全文
摘要:视图实际上就是一个存储查询,重点是是可以混合和匹配来自基本表(或者其他视图)的数据,从而创建在很多方面像另一个基表那样起作用的对象。可以创建一个简单的查询,仅仅从一个表中选择几列,而忽略其他列;或者也可以创建一个复杂的查询,连接几个表,使的这些表看起来像一个表。 一、简单的视图 视图的语法如下: C
阅读全文
摘要:SQL Server存储机制 1、区段 区段(extent)是用来为表和索引分配空间的基本存储单元。它由8个连续的64KB数据页组成。 基于区段(而不是实际使用空间)分配空间的概念的要点: 一旦区段已满,那么下一记录将要占据的空间不是记录的大小,而是整个新区段的大小。一次分配一个区段而不是分配一个记
阅读全文
摘要:一、约束的分类 在SQLServer中,有3种不同类型的约束。 1、实体约束 实体约束是关于行的,比如某一行出现的值就不允许出现在其他行,例如主键。 2、域约束 域约束是关于列的,对于所有行,某一列有那些约束,例如CHECK约束。 3、参照完整性约束 如果某列的值必须与其他列的值匹配,那就意味着需要
阅读全文
摘要:今天在公司碰到一个神奇的问题,浪费了我一个早上,在本地数据库连接服务器上的数据库,无论如何都不得。(备注:今天早上公司的路由坏了,老板在修。)其实,如果结合上这一点蛛丝马迹也就可以肯定是网络的问题了。在连接局域网服务器上的数据库的时候,SqlServer报错: 在建立与服务器的连接时出错。在连接到
阅读全文
摘要:为了改进性能,分析重编译的起因很重要。往往,重编译可能并不需要,可以避免它以改进性能。了解导致重编译发生的不同条件有助于评估重编译的起因,并决定在重编译不必要时避免它的方法。 存储过程重编译在以下情况下发生: 存储过程语句中引用的常规表、临时表或视图的架构变化。架构变化包括表的元数据或表上索引的变化
阅读全文
摘要:存储过程通过明确地将查询的可变部分转换为参数来增进执行计划的可重用性。这使执行计划在查询以可变部分的相同或不同值重新提交时可以被重用。存储过程包含一组复杂的SQL语句,使生成存储过程的执行计划的代价有些高。因此,通常重用存储过程的执行计划来代替生成新计划是有利的。但是,有时候现有的计划可能不适用或者
阅读全文
摘要:一、目标:全文搜索 任何存储文本的应用都有针对这个文本进行单词或词组搜索的需求。我们使用数据库存储越来越多的文本数据,同时也需要搜索速度越来越快。Web应用尤其需要高性能和高扩展性数据库搜索技术。 SQL基本原理就是一列中的单个数据是原子性的。也就是说,当我们对两个值进行比较时,通常是把两个值当成一
阅读全文
摘要:一、减少输入 程序员都喜欢使用通配符,如: SELECT * FROM Person 又或者省略字段名: INSERT INTO Person VALUES('10','张飞'...) 二、捷径会让你迷失方向 对于以上代码,如果你仅仅是在开发过程中用于查看一下数据库信息,又或者你只是写个小程序自己玩
阅读全文
摘要:一、问题提出 随机数在数据库中是经常用到的系统。 例如,一个广告系统希望随机选择一个广告来显示。随机推荐相关文章等等。 在SQL Server中查找随机数最简单的方法为: SELECT TOP 1 * FROM Person ORDER BY NEWID() 以上SQL语句的执行计划如下: 以上这种
阅读全文
摘要:为了最简单地说明问题,我特地设计了一张这样的表。 一、GROUP BY单值规则 规则1:单值规则,跟在SELECT后面的列表,对于每个分组来说,必须返回且仅仅返回一个值。 典型的表现就是跟在SELECT后面的列,如果没有使用聚合函数,必须出现在GROUP BY子句后面。 如下面这个查询报错: 因为对
阅读全文
摘要:一、提出问题 不可避免地,我们都数据库总有一些字段是没有值的。不管是插入一个不完整的行,还是有些列可以合法地拥有一些无效值。SQL 支持一个特殊的空值,就是NULL。 在很多时候,NULL值导致我们的程序出现报错的现象,于是很多人就开始拒绝NULL值,想各种各样的方法来避免使用NULL值,但是很遗憾
阅读全文
摘要:UDF的定义 和存储过程很相似,用户自定义函数也是一组有序的T-SQL语句,UDF被预先优化和编译并且尅作为一个单元爱进行调用。UDF和存储过程的主要区别在于返回结果的方式。 使用UDF时可传入参数,但不可传出参数。输出参数的概念被更为健壮的返回值取代了。和系统函数一样,可以返回标量值,这个值的好处
阅读全文
摘要:存储过程(stored procedure)有时也称sproc,它是真正的脚本,更准确地说,它是批处理(batch),但都不是很确切,它存储与数据库而不是单独的文件中。 存储过程中有输入参数,输出参数以及返回值等。 一、创建存储过程 创建存储过程的方法和创建数据库中任何其他对象一样,除了他使用AS关
阅读全文
摘要:游标是面向行的,它会使开发人员变懒,懒得去想用面向集合的查询方式实现某些功能。 在性能上,游标会迟更多的内存,减少可用的并发,占用带宽,锁定资源,当然还有更多的代码量。 用一个比喻来说明为什么游标会占用更多的资源。当你从ATM机取款的时候,是一次取1000的效率更高呢,还是10次100呢? 既然游标
阅读全文
摘要:CASE简介 基于列的逻辑表达式,其实就是CASE表达式.可以用在SELECT,UPDATE,DELETE,SET以及IN,WHERE,ORDER BY和HAVING子句之后。由于这里讲的是T-SQL查询,所以只说到CASE表达式在SELECT子句和ORDER BY子句中的使用。 CASE表达式的作
阅读全文
摘要:T-SQL变量 变量的种类: 在T-SQL中,变量按生存范围可以分为全局变量(Global Variable)和局部变量(Local Variable) 1、全局变量是由系统定义的,在整个SQL Server实例内都能访问到的变量,全部变量以@@开头,用户只能访问,不能赋值。 2、局部变量由用户定义
阅读全文
摘要:运行时生成语句 1、用EXECUTE执行动态命令 EXECUTE命令可以执行存储过程、函数和动态的字符串命令。注意此语句的作用正如前面在介绍批处理时,如果批中的第一条语句是"EXECUTE存储过程",则可以 省略关键字"EXECUTE"。 语法: { EXEC | EXECUTE } ( { @st
阅读全文
摘要:运算符 1、算术运算符 算术运算符 说明 + 加法 - 减法 * 乘法 / 除法 % 取模,两个整数相除后的余数 2、位运算符 位运算符 说明 &(与、and) 按位逻辑与运算 |(或、OR) 按位逻辑或运算 ~(非、NOT) 按位逻辑非运算 (互斥OR) 按位互斥运算 3、比较运算符 比较运算符
阅读全文
摘要:1、USE语句 USE语句用于设置当前数据库,如果没有USE语句,那么就由执行脚本的任何用户来确定执行脚本时当前数据库是正确的。如果只是一个通用脚本,那么省去USE语句实际上可能更有益。通常,如果在脚本中命名特定于数据库的表(非系统表),那么需要使用USE命令。如果脚本用于修改一个特定的数据库,那么
阅读全文
摘要:CREATE 语句 CREATE语句的开头都是一样的,然后是特定的细节。 CREATE <object type> <object name> 一、CREATE DATABASE CREATE DATABASE命令用于创建一个数据库,创建一个数据库的最基本语法如下所示: CREATE DATABAS
阅读全文
摘要:控制流语句 批处理: 一个批处理段是由一个或者多个语句组成的一个批处理,之所以叫批处理是因为所有语句一次性被提交到一个SQL实例。 批处理是分批提交到SQL Server示例,因此在不同的批处理里局部变量不可访问。 在不同批处理中,流程控制语句不能跨批处理。 如果想让多个语句分多次提交到SQL实例,
阅读全文
摘要:一、标识符 在T-SQL语言中,对SQLServer数据库及其数据对象(比如表、索引、视图、存储过程、触发器等)需要以名称来进行命名并加以区分,这些名称就称为标识符。 通常情况下,SQLServer数据库、数据库以及各种数据对象都应该有一个标识符,但对于某些对象来说,比如约束,标识符是可选的。推荐每
阅读全文
摘要:上一节在研究Open Flash Chart时,漏掉不少东西,只是简单的熟悉了一下后端的属性设置。今天再来补充一下。 一、显示Open Flash Chart图表 Open Flash Chart 前台配置: swfobject.embedSWF(flashPath, "chart", "100%"
阅读全文
摘要:天公司要求开发一个曲线图,简单看了一下之前公司的一个系统,发现一个曲线图效果还不错,查了一下叫OpenFlashChart,还是很不错的,很多人用。研究了一下,发现还不错,特地写了个DEMO测试下。 public ActionResult ITooltip() { int DateLen = Con
阅读全文
摘要:DataContractJsonSerializer类同样是提供JSON序列化的类。而且貌似有几个方法还和XML有点点关系。 注意用此类要引用System.ServiceModel.Web.dll与System.Runtime.Serialization.dll 1、属性 DataContractS
阅读全文
摘要:JSON 文本格式在语法上与创建 JavaScript 对象的代码相同。 由于这种相似性,无需解析器,JavaScript 程序能够使用内建的 eval() 函数,用 JSON 数据来生成原生的 JavaScript 对象。 JSON 语则: 数据在 名称/值 对仲 数据由逗号分隔 花括号保存对象
阅读全文
摘要:JavaScriptSerializer 类由异步通信层内部使用,用于序列化和反序列化在浏览器和 Web 服务器之间传递的数据。说白了就是能够直接将一个C#对象传送到前台页面成为javascript对象。要添加System.Web.Extensions.dll的引用。该类位于System.Web.S
阅读全文
摘要:一、JSON解析与字符串化 JSON.stringify() 序列化对象、数组或原始值 语法:JSON.stringify(o,filter,indent) o,要转换成JSON的对象、数组或原始值 filter,指定要序列化的属性名 indent,格式化为可读的代码,可指定分隔符或指定的缩进空格个
阅读全文
摘要:一、简介 在Asp.net MVC实现的Comet推送的原理很简单。 服务器端:接收到服务器发送的AJAX请求,服务器端并不返回,而是将其Hold住,待到有东西要通知客户端时,才将这个请求返回。 客户端:请求异步Action,当接收到一个返回时,立即又再发送一个。 缺点:会长期占用一个Asp.net
阅读全文
摘要:一、jQuery扩展 1、$.extend(object) 类似于.Net的扩展方法,用于扩展jQuery。然后就可以用$.的方式调用。 $(function(){ $.extend({ fun1: function () { alert("为jQuery扩展一个fun1函数!"); } }); $
阅读全文
摘要:空间属性置顶: 属性 说明 change 事件,当控件改变时触发 nestable 方法,获取顺序JSON数据,形式如下: [{"id":1},{"id":2},{"id":3,"children":[{"id":4},{"id":5}]}] 今天,有个刚毕业的同事要做一个“排序出港”的功能,看了他
阅读全文
摘要:一、要引用的文件 要使用jqGrid,首先页面上要引入如下css与js文件。 1、css <link href="/css/ui.jqgrid.css" rel="stylesheet" type="text/css" /> 2、js <script src='/Scripts/js/jquery-
阅读全文
摘要:符号文件是一种辅助数据,它包含了对应用程序代码的一些标注信息,这些信息在调试过程中非常有用。如果没有辅助数据,那么能获得的信息就只有应用程序的二进制文件。二进制文件很难调试,因为无法看到代码中的函数名、数据结构名等。这正是符号文件能显示的。符号文件的扩展名通常是pdb,调试器能够很好地解析这种文件格
阅读全文
摘要:jQuery获取URL信息有很多方法,但是使用这个插件就非常爽了。 托管地址在:http://github.com/allmarkedup/jQuery-URL-Parser // http: //localhost:19090/home/index?id=1 var source = $.url.
阅读全文
摘要:使用EasyUI最好的方法不是学会,所有的东西都敲一遍,你也没办法敲得完,而是找到一个好的文档。 http://files.cnblogs.com/kissdodog/jQueryEasyUI%E4%B8%AD%E6%96%87%E5%B8%AE%E5%8A%A9%E6%89%8B%E5%86%8C
阅读全文
摘要:一、jsonp 其实我本以为jsonp能够做到利用AJAX任意访问别人的程序代码,但是我发现实际并不是我想象的那样,因为jsonp要改动服务器端的代码。别人的服务器端代码怎么改啊?除非别人愿意,否则你还是不能用AJAX获取别人的数据。 Ajax直接请求普通文件存在跨域无权限访问的问题,甭管你是静态页
阅读全文
摘要:SWFUpload是一个批量上传插件,在HTML4.1里面,估计也只有Flash+javascript配合才能够做到了。先复制个重要的网址,这个应该是官方的文档了,相当齐全。 http://leeon.me/upload/other/swfupload.html#uploadStart 这个是格式比
阅读全文
摘要:一、$.browser对象属性 属性列表 说明 webkit webkit相关浏览器则返回true,否则返回false,如google,傲游。 mozilla mozilla相关浏览器则返回true,否则返回false,如火狐 safari safari相关浏览器则返回true,否则返回false,
阅读全文
摘要:头像裁剪是一个经常用到的功能,实现原理也较为简单,就是在本地选择好所需裁剪图片的坐标,将坐标发送到服务器,由服务器执行图片裁剪操作。 jQuery插件Jcrop提供了强大的图片裁剪坐标选择插件。一下来介绍它的用法。本处采用了AJAX本地上传一张图片的方法让用户裁剪。很多验证没有做,因为作为一个关于J
阅读全文
摘要:jqzoom是一款基于jQuery的图片方法插件。 使用方法:1.引入jQuery与jqzoom,jqzoom.css 2.准备两张一大一小大小相同的图片,小图片放在<img>标签的"src"属性里,给img标签加个<a>标签,<a>标签的"href"属性链向大图片 参数说明:zoomWidht:
阅读全文
摘要:artDialog是一个非常强大的弹出框插件。默认有两个版本,一个是jQuery版,一个是javascript版。功能非常多,而且使用非常简单。不写了,直接贴上官网的预览运行地址,以后用得着的时候去那里找代码就OK了。 官网预览地址:http://www.planeart.cn/demo/artDi
阅读全文
摘要:一、ajaxFileUpload是一个异步上传文件的jQuery插件。 传一个不知道什么版本的上来,以后不用到处找了。 语法:$.ajaxFileUpload([options]) options参数说明: 1、url 上传处理程序地址。 2,fileElementId 需要上传的文件域的ID,即<
阅读全文
摘要:一、jQuery.Cookie.js插件是一个轻量级的Cookie管理插件。 特别提醒,今日发现一个特别的错误,google浏览器提示:has no method $.cookie。火狐浏览器提示:$.cookie is not a function;调试了半天,终于找到原因,如果同一个页面两次或者
阅读全文
摘要:一、jQuery.Form.js 插件的作用是实现Ajax提交表单。 方法: 1.formSerilize() 用于序列化表单中的数据,并将其自动整理成适合AJAX异步请求的URL地址格式。 2.clearForm() 清除表单中所有输入值的内容。 3.restForm 重置表单中所有的字段内容。即
阅读全文
摘要:一、jQuery与DOM对象的转换。 1、jQuery对象转换为DOM对象:$cr[0] 或 $cr.get(0) $cr为jQuery对象 2、DOM对象转换为jQuery对象:$(cr) cr为Dom对象;
阅读全文
摘要:一、load() 加载页面数据 load(url,[data],[callback]) url:加载的页面地址,[data]传送的数据,[callback]加载完成时回调函数。 设计一个load.html代码如下: <body> <div id="div1"> 我是div1 </div> <div
阅读全文
摘要:1、eq() 筛选指定索引号的元素 2、first() 筛选出第一个匹配的元素 3、last() 筛选出最后一个匹配的元素 4、hasClass() 检查匹配的元素是否含有指定的类 5、filter() 筛选出与指定表达式匹配的元素集合 6、is() 检查元素是否参数里能匹配上的 7、map() 8
阅读全文
摘要:1、offset()获取匹配元素在相对浏览器窗口的偏移量 返回一个对象,包括两个属性。left:相对浏览器窗口左边的距离。top:相对浏览器顶部的距离。 $("#div1").offset().left; //返回id为div1相对于浏览器窗口最左边的距离 $("#div1").offset().t
阅读全文
摘要:1、show()显示效果 语法:show(speed,callback) Number/String,Function speend为动画执行时间,单位为毫秒。也可以为slow","normal","fast" callback可选,为当动画完成时执行的函数。 show(speed,[easing]
阅读全文
摘要:一、jQuery.validate简介 jQuery.validate.js插件用于对表单输入进行验证,其使用配置非常简单。支持多事件触发,自带多种验证规则,还支持自定义验证规则。 1、配置方法 先导入jQuery库,然后导入Validate插件,如果是中文提示还需要导入messages_zh.js
阅读全文
摘要:jQuery获取文件选择输入框的扩展名 var file=$("input[name='file']").val() var filename=file.replace(/.*(\/|\\)/, ""); //文件名 var fileExt=(/[.]/.exec(filename)) ? /[^.
阅读全文
摘要:一、事件列表 1.blur() 当失去焦点时触发。包括鼠标点击离开和TAB键离开。 2.change() 当元素获取焦点后,值改变失去焦点事触发。 3.click() 当鼠标单击时触发。 4.dblclick() 当鼠标双击时触发。 5.error() 当javascript出错或img的src属性
阅读全文
摘要:1.jQuery属性。 获取元素属性的语法: attr(name) 例子:$("#img1").attr("src"); 设置元素单个属性的语法: attr(key,value) 例子:$("#img1").attr("src","2.jpg"); 设置元素多个属性的语法: attr({key0:v
阅读全文
摘要:基本选择器: #id 根据Id匹配一个元素 .class 根据给定的类名匹配一个元素 element 根据元素名匹配一个元素 * 匹配所有元素 selecttor1,selector2 并集,返回两个选择器匹配到的元素 层次选择器: ancestor descendant 根据祖先匹配所有的后代元素
阅读全文
摘要:今天,发现了一个之前从未注意的角落,相信能够大大提高自己写JS的速度。能够迅速发现错误。 例如,今天的加班中调试一个js错误发现的一个例子。 1、Google浏览器报的错 以上是google浏览器报的错误,只报一个错误文件,相信是什么地方由null调用了length属性导致的。由于这是一个已经维护了
阅读全文
摘要:location.href这个东西常常用于跳转,location既是window对象的属性,又是document对象的属性。 JavaScript hash 属性 -- 返回URL中#符号后面的内容 JavaScript host 属性 -- 返回域名 JavaScript hostname 属性
阅读全文
摘要:JS扩展方法与C#的扩展方法非常相似,也是可以链式调用的,也是通过对某个类的扩展写法来实现。这个东西非常好用,如果将预先写好的方法放到一个js里面引用的话,那么后面写js将非常有趣。 下面给出一个例子: <head> <title>测试JS扩展方法</title> <script type="tex
阅读全文
摘要:当页面中引用template.js文件之后,脚本将创建一个TrimPath对象供你使用。 parseDOMTemplate(elementId,optionalDocument) //获得模板字符串代码 得到页面中Id为elementId的DOM组件的InnerHTML,将其解析成一个模板,这个返回
阅读全文
摘要:闭包是一个什么概念呢?先来看下面一段代码: <html> <head> <title>js闭包</title> <script type="text/javascript"> window.onload = function(){ var divs=document.getElementsByTag
阅读全文
摘要:关于JavaSctipt的兼容性,最懒的办法就是用jQuery的工具函数。尽量不要用那些什么ECMAScript之类的函数,因为很多浏览器都会报找不到函数的错误。下面列出一些在开发过程中碰到过的javascript问题。 1、参数列表多个逗号。 $.ajax({})方法,非常熟悉了吧,但是在IE中有
阅读全文
摘要:JSON 文本格式在语法上与创建 JavaScript 对象的代码相同。 由于这种相似性,无需解析器,JavaScript 程序能够使用内建的 eval() 函数,用 JSON 数据来生成原生的 JavaScript 对象。 JSON语法规则: 数据在 名称/值 对仲 数据由逗号分隔 花括号保存对象
阅读全文
摘要:JavaScriptSerializer 类由异步通信层内部使用,用于序列化和反序列化在浏览器和 Web 服务器之间传递的数据。说白了就是能够直接将一个C#对象传送到前台页面成为javascript对象。要添加System.Web.Extensions.dll的引用。该类位于System.Web.S
阅读全文
摘要:一、javascript中,变量定义的位置与写在哪个<script></script>标签对内无关,只分前后顺序,写在前面的后面就能够访问,写在后面的前面会提示“未定义”。 例如:在页面顶部<head>标签对内定义的变量,在页面任意地方都能用。但是在页面<body>内部定义的变量,就只能在其后面的地
阅读全文
摘要:一、构造函数 new String(value) //构造函数 function String(value) //转换函数 二、属性 length 该字符串中的字符数 var str = new String("abcdefg"); document.write(str.length); //输出
阅读全文
摘要:一、构造函数 new object() new object(value) value:可以是数字,布尔值或字符串,这些值将转换为Number、Boolean或者String对象。 二、属性 object.constructor 所有对象的constructor属性都指向当前对象的构造函数的那个函数
阅读全文
摘要:一、构造函数 Number(value) new Number(value) 二、Number属性 1、Number.MAX_VALUE 返回能表示的最大数字。 2、Number.MIN_VALUE 能表示的最小数字。 3、Number.NAN 非数字值。 4、Number.NEGATIVE_INF
阅读全文
摘要:window :window对象是BOM中所有对象的核心,除了是BOM中所有对象的父对象外,还包含一些窗口控制函数。 1、全局的window对象 JavaScript中的任何一个全局函数或变量都是window的属性。 <script type="text/javascript"> var name=
阅读全文
摘要:一、Array 二、Boolean 三、Date 四、Error 五、EvalError 六、Function 七、JSON 八、Math 九、Number 十、Object 十一、RangeError 十二、ReferenceError 十三、RegExp 十四、String 十五、SyntaxE
阅读全文
摘要:一、offsetWidth:元素的宽度,包括边框,内容,内边距。 二、offsetHeight:元素的高度,包括边框,内容,内边距。 三、offsetLeft:元素的X坐标(相对于最近已定位的祖先元素,如果没有则是窗口)。 四、offsetTop:元素的Y坐标(相对于最近已定位的祖先元素,如果没有则
阅读全文
摘要:一、document.getElementById() 根据Id获取元素节点 <div id="div1"> <p id="p1"> 我是第一个P</p> <p id="p2"> 我是第二个P</p> </div> window.onload = function () { var str = do
阅读全文
摘要:一、eval() //执行一段字符串中的javascript代码。 语法:eval(code); //可以将javascript写在字符串里面执行。 var str = "document.write('你好!');" eval(str); 二、EvalError() 构造函数: new EvalE
阅读全文
摘要:一、Error()构造函数 构造函数:new Error(); new Error(message); 二、Error.message //人类可读的错误消息 语法:error.message; 三、Error.name //错误的类型 语法:error.name; 四、Error.toString
阅读全文
摘要:我们可以知道:escape()除了 ASCII 字母、数字和特定的符号外,对传进来的字符串全部进行转义编码,因此如果想对URL编码,最好不要使用此方法。而encodeURI() 用于编码整个URI,因为URI中的合法字符都不会被编码转换。encodeURIComponent方法在编码单个URICom
阅读全文
摘要:一、new Boolean(value); //构造函数 Boolean(value); //转换函数 0,NaN,null,"",undefined都会转成false,其他都会返回true,包括字符串"false" var b = new Boolean(1); //new也可以写,就相当于上面的
阅读全文
摘要:一、Arguments.callee //获取当前正在执行的函数,也就是这个函数自身,常用于获取匿名函数自身 语法:arguments.callee var factorial = function (x) { if (x < 2) { return 1; } else { return x * a
阅读全文
摘要:2013/9/23 - 更新 JSON 日期转 JS日期,我们知道,日期类型转成JSON之后,返回的数据类似这样: /Date(1379944571737)/ 但是这种日期并不能直接显示,因为根本没有人知道这是什么意思,下面提供一种JSON日期转JS日期的方式。 function ConvertJS
阅读全文
摘要:一、创建对象 1、对象直接量。 var point = { x:0,y:0 }; //point就是一个对象,跟C#不同,它不需要一定有类才能创建对象。 2、通过new创建对象 var d = new Date(); //创建一个Date对象 3、原型 Object.prototype //用于获取
阅读全文
摘要:在javascript里,函数是可以嵌套的。 如: function(){ funcrion square(x){ return x*x; } return square(10); } 在javascript里,将函数绑定给一个对象,用对象调用的函数称为方法,容易跟C#搞混。 一、函数的属性 在函数
阅读全文
摘要:一、定义数组。 定义数组有两个方法: 1、var arr1 = []; //定义一个空数组 2、var arr2 = [1,2,3,"str1","str2"]; //定义一个有5个元素的数组。 3、var arr3 = new Array(3); //定义一个空数组 4、var arr4 = ne
阅读全文
摘要:多点用javascript数组,javascript对象,这些东西性能是很高的,而且代码美观,多用水平才能提高,别一天到晚就只会var个变量。 javascript是区分大小写的语言,也就是说,关键字、变量、函数名、和所有的标识符都必须采取一致的大小写形式。 javascript支持两种注释,在行尾
阅读全文
摘要:HTTP响应也由三个部分组成,分别是:状态行、消息报头、响应正文。 其中,HTTP-Version表示服务器HTTP协议的版本;Status-Code表示服务器发回的响应状态代码;Reason-Phrase表示状态代码的文本描述。状态代码由三位数字组成,第一个数字定义了响应的类别,且有五种可能取值。
阅读全文
摘要:一、HTTP报文是面向文本的,报文中的每一个字段都是一些ASCII码串,各个字段的长度是不确定的。HTTP有两类报文:请求报文和响应报文。 一个HTTP请求报文由请求行(request line)、请求头部(header)、空行和请求数据4个部分组成,下图给出了请求报文的一般格式。 网上复制了一个图
阅读全文
摘要:A、表单元素都是放在<form></form>标签内的。来看看表单的属性 属性 值 描述 accept MIME_type 规定通过文件上传来提交的文件的类型 accept-charset charset 服务器处理表单数据所接受的字符集 enctype MIME_type 规定表单数据在发送到服务
阅读全文
摘要:一、cookie的大小 cookie只能存储最大4kb的数据。cookie的名/值中的值不允许包含分号、逗号和空白符。因此可以采用encodeURIComponent()编码,读取的时候先采用decodeURIComponent()解码。 二、cookie的有效期 cookie默认的有效期很短暂,它
阅读全文
摘要:显示结果描述实体名称实体编号 空格   < 小于号 < < > 大于号 > > & 和号 & & " 引号 " " ' 撇号 ' (IE不支持) ' ¢ 分 ¢ ¢ £ 镑 &
阅读全文
摘要:一、上传域为何选择的路径都是C:\fakepath\***; 出于安全性的考虑,上传文件时屏蔽了真实的本地文件路径,而以“C:\fakepath\”取代之。
阅读全文
摘要:一、清除浮动的目的。 1、当一个父元素的高度不写或为auto时,而且这个父元素内又有浮动的子元素,那么这时候该父元素的高度将不会自动适应子元素的高度,也可以说高度是0px; 有如下代码: <div class="divp" style="width:300px; background:red; bo
阅读全文
摘要:一、类内部Hack IE都能识别*;标准浏览器(如FF)不能识别*; IE6能识别*,但不能识别 !important, IE7能识别*,也能识别!important; FF不能识别*,但能识别!important; IE6支持下划线,IE7和firefox均不支持下划线。 IE6 IE7 FF *
阅读全文
摘要:1.尽量用class来定义样式。尽量少使用 .div1 ul li{}这样的样式下去,因为如果li里面还有<div><ul><li>这些元素的话会造成干扰,应该给ul加个class如<ul class="ul1"></ul>这样来写。 2.margin:0px auto; 用于兼容不同分辨率的内容居
阅读全文
摘要:一个盒子实际所占有的宽度或高度是由"内容+内边距+边框+外边距"组成。 1.边框border 边框的主要属性有三个,分别是: border-width:边框宽度、 border-style:边框样式、border-color:边框颜色。 以上属性可以单个写,也可以写成: border:[border
阅读全文
摘要:一.CSS引入方法:行内式、嵌入式、导入式、链接式。 1、行内式。 即:在标签的style属性中设定CSS样式。 例子:<div style="行内式</div> 2、嵌入式 即:将页面各种元素的设置集中写在<head></head>标签里。 例子: <head> <style type="text
阅读全文
摘要:相对偏移 指定left top等属性就能够够完美控制一个元素的位置 如: position:relative; left:2px; 今天遇到一个很好玩的问题,当两个并排浮动框,当一个框的长度太大时就会把另一个框顶到下一行,这个时候就可以用margin-right:-2px;将右外距设置为负数来解决!
阅读全文
摘要:AceAdmin有很多Html控件,而下载下来之后全部混杂在一起,想用一个控件有时得调整半天,干脆整理出一个版本,而且结合起来MVC的封装。以后就不用一个js css的调了。 在MVC中Html的控件有两种,一个带for一个不带for。 @Html.TextArea:直接输出一个文本框,可以自定义输
阅读全文
摘要:一、使用Bootstrap要引用的文件 要使用Bootstrap,基本架构要引用如下文件: <link href="bootstrap.min.css" rel="stylesheet" type="text/css" /> <script type="text/javascript" scr="j
阅读全文
浙公网安备 33010602011771号