摘要: 网站上加“QQ在线”的正统方法 不少商业网站上都有“QQ在线”、“QQ交谈”、”在线咨询“的功能,在国内这可能是最简单有效的在线客服的方法。从用户体验上看,我的感觉是在网页上放一个静态的“QQ在线”按钮比不停地弹出一个框框要有好的多。虽然网上有很多代码可以借用,这里还是建议大家用正统的方法: 1)用客服QQ号登陆“QQ在线”(wp.qq.com) 2)在“1.选择代码类型“下选”完全公开“ 3)在”图片留言:“下输入适合自己情况的文字,如我放的是”广西旅游网QQ客服“ 4)点击”更改风格“选择图片风格(共有10种图案供选,对于商业网站来说只有前几种比较靠谱) 5)点击”设置“还可以进行其他设置 阅读全文
posted @ 2013-01-03 16:58 Jason#Li 阅读(111) 评论(0) 推荐(0) 编辑
摘要: 前言JavaScript 不包含传统的类继承模型,而是使用 prototypal 原型模型。虽然这经常被当作是 JavaScript 的缺点被提及,其实基于原型的继承模型比传统的类继承还要强大。实现传统的类继承模型是很简单,但是实现 JavaScript 中的原型继承则要困难的多。由于 JavaScript 是唯一一个被广泛使用的基于原型继承的语言,所以理解两种继承模式的差异是需要一定时间的,今天我们就来了解一下原型和原型链。原型10年前,我刚学习JavaScript的时候,一般都是用如下方式来写代码: var decimalDigits = 2, tax ... 阅读全文
posted @ 2012-08-20 23:30 Jason#Li 阅读(132) 评论(0) 推荐(0) 编辑
摘要: 混乱的URI编码 JavaScript中编码有三种方法:escape、encodeURI、encodeURIComponent C#中编码主要方法:HttpUtility.UrlEncode、Server.UrlEncode、Uri.EscapeUriString、Uri.EscapeDataString JavaScript中的还好,只提供了三个,C#中主要用的就有这么多,还没有列出其他编码(HTML),一多就弄不明白,弄不明白就心生恐惧,心生恐惧就变得苦逼,本文就向大家详细解释在JavaScript及C#中如何对URI进行编码的方法(注:本文不涉及到其他编码)。escape:不推荐使... 阅读全文
posted @ 2012-03-13 10:57 Jason#Li 阅读(123) 评论(0) 推荐(0) 编辑
摘要: 前言大家学JavaScript的时候,经常遇到自执行匿名函数的代码,今天我们主要就来想想说一下自执行。在详细了解这个之前,我们来谈了解一下“自执行”这个叫法,本文对这个功能的叫法也不一定完全对,主要是看个人如何理解,因为有的人说立即调用,有的人说自动执行,所以你完全可以按照你自己的理解来取一个名字,不过我听很多人都叫它为“自执行”,但作者后面说了很多,来说服大家称呼为“立即调用的函数表达式”。本文英文原文地址:http://benalman.com/news/2010/11/immediately-invoked-function-expression/什么是自执行?在JavaScript里, 阅读全文
posted @ 2012-03-12 15:47 Jason#Li 阅读(150) 评论(0) 推荐(0) 编辑
摘要: 简介Module模式是JavaScript编程中一个非常通用的模式,一般情况下,大家都知道基本用法,本文尝试着给大家更多该模式的高级使用方式。首先我们来看看Module模式的基本特征:模块化,可重用封装了变量和function,和全局的namaspace不接触,松耦合只暴露可用public的方法,其它私有方法全部隐藏关于Module模式,最早是由YUI的成员Eric Miraglia在4年前提出了这个概念,我们将从一个简单的例子来解释一下基本的用法(如果你已经非常熟悉了,请忽略这一节)。基本用法先看一下最简单的一个实现,代码如下:var Calculator = function (eq) { 阅读全文
posted @ 2012-03-12 15:44 Jason#Li 阅读(176) 评论(0) 推荐(0) 编辑
摘要: 前言网上还没用发现有人对命名函数表达式进去重复深入的讨论,正因为如此,网上出现了各种各样的误解,本文将从原理和实践两个方面来探讨JavaScript关于命名函数表达式的优缺点。简单的说,命名函数表达式只有一个用户,那就是在Debug或者Profiler分析的时候来描述函数的名称,也可以使用函数名实现递归,但很快你就会发现其实是不切实际的。当然,如果你不关注调试,那就没什么可担心的了,否则,如果你想了解兼容性方面的东西的话,你还是应该继续往下看看。我们先开始看看,什么叫函数表达式,然后再说一下现代调试器如何处理这些表达式,如果你已经对这方面很熟悉的话,请直接跳过此小节。函数表达式和函数声明在EC 阅读全文
posted @ 2012-03-12 15:39 Jason#Li 阅读(145) 评论(0) 推荐(0) 编辑
摘要: 在设计页面布局的时候,一般我们通常只会用到ul和li标签,至于DL一般都很少用到,它也属于列表类的标签,下面说一下大概的用法: <dl>标记定义了一个定义列表. <dt>(“definition stitle”,定义标题) <dd>标记(“definition description”,定义描述)。 定义列表中的条目是通过使用<dt>标记和<dd>标记创建的。<dt>给出了术语名,<dd>标记给出了术语的定义,也就是说<dt>用来创建列表中的上层项目,<dd>用来创建列表中最下层项目,& 阅读全文
posted @ 2012-02-27 17:34 Jason#Li 阅读(310) 评论(0) 推荐(0) 编辑
摘要: 才华横溢的Stoyan Stefanov,在他写的由O’Reilly初版的新书《JavaScript Patterns》(JavaScript模式)中,我想要是为我们的读者贡献其摘要,那会是件很美妙的事情。具体一点就是编写高质量JavaScript的一些要素,例如避免全局变量,使用单变量声明,在循环中预缓存length(长度),遵循代码阅读,以及更多。此摘要也包括一些与代码不太相关的习惯,但对整体代码的创建息息相关,包括撰写API文档、执行同行评审以及运行JSLint。这些习惯和最佳做法可以帮助你写出更好的,更易于理解和维护的代码,这些代码在几个月或是几年之后再回过头看看也是会觉得很自豪的。书 阅读全文
posted @ 2012-02-22 11:34 Jason#Li 阅读(160) 评论(0) 推荐(0) 编辑
摘要: DOM:(Document Object Model) 文档对象模型。BOM:(Browser Object Mode) 浏览器对象模型。1.DOM仅仅提供了针对Web页面文档的编程模型;BOM则提供了访问浏览器自身各组件的脚本编程模型.2.BOM对于每一个浏览器来说都是独特的;DOM则是一种独立于浏览器的文档编程模型,它提供了一组与浏览器无关的属性、方法和对象的集合,以供JavaScript访问和操纵文档的内容. 阅读全文
posted @ 2011-11-21 11:03 Jason#Li 阅读(324) 评论(0) 推荐(0) 编辑
摘要: abstract 修饰符指示所修饰的内容缺少实现或未完全实现。 abstract 修饰符可用于类、方法、属性、索引器和事件。 在类声明中使用 abstract 修饰符以指示某个类只能是其他类的基类。 标记为抽象或包含在抽象类中的成员必须通过从抽象类派生的类来实现。抽象类具有以下特性:抽象类不能实例化。抽象类可以包含抽象方法和抽象访问器。不能用 sealed 修饰符修饰抽象类,因为这两个修饰符的含义是相反的。采用 sealed 修饰符的类无法继承,而 abstract 修饰符要求对类进行继承。从抽象类派生的非抽象类必须包括继承的所有抽象方法和抽象访问器的实际实现。抽象方法具有以下特性:抽象方法是 阅读全文
posted @ 2011-11-20 23:16 Jason#Li 阅读(291) 评论(0) 推荐(0) 编辑
摘要: 在用作修饰符时,new 关键字可以显式隐藏从基类继承的成员。 隐藏继承的成员时,该成员的派生版本将替换基类版本。 虽然可以在不使用 new 修饰符的情况下隐藏成员,但会生成警告。 如果使用 new 显式隐藏成员,则会取消此警告,并记录要替换为派生版本这一事实。若要隐藏继承的成员,请使用相同名称在派生类中声明该成员,并使用 new 修饰符修饰该成员。对同一成员同时使用 new 和 override 是错误的做法,因为这两个修饰符的含义互斥。 new 修饰符会用同样的名称创建一个新成员并使原始成员变为隐藏的。在隐藏继承成员的声明中不使用 new 修饰符将会生成警告。MSDN的简单示例:public 阅读全文
posted @ 2011-11-20 22:46 Jason#Li 阅读(170) 评论(0) 推荐(0) 编辑
摘要: 要扩展或修改继承的方法、属性、索引器或事件的抽象实现或虚实现,必须使用 override修饰符。由 override 声明重写的方法称为重写基方法。 使用override时需要注意以下几点:override 方法提供从基类继承的成员的新实现。重写的基方法必须与 override 方法具有相同的签名。不能重写非虚方法或静态方法。重写的基方法必须是 virtual、abstract 或 override 的。override 声明不能更改 virtual 方法的可访问性。 override 方法和 virtual 方法必须具有相同的访问级别修饰符。您不能使用 new、static 或 virtua 阅读全文
posted @ 2011-11-20 22:17 Jason#Li 阅读(307) 评论(0) 推荐(0) 编辑
摘要: virtual 关键字用于修饰方法、属性、索引器或事件声明,并使它们可以在派生类中被重写。虚拟成员的实现可由派生类中的重写成员更改,而非虚拟成员是无法由派生类进行重写的,这一点是与Java不同的。Java语言中,只要在派生类中定义了与父类具有相同签名的方法,那么父类的方法就被重写。C#语言中,必须使用virtual关键字进行修饰,否则在派生类中进行重写会导致编译器报错。 虚方法或者虚属性并不等同于抽象方法、抽象属性。抽象方法和抽象属性无法直接调用,必须通过派生类进行实现之后才能调用;而虚方法和虚属性是表示在派生类中有可能进行重写的,但是如果没有重写,那么将调用父类中的该虚方法和虚属性。调用虚. 阅读全文
posted @ 2011-11-20 02:05 Jason#Li 阅读(485) 评论(0) 推荐(0) 编辑
摘要: MD5简介:Message Digest Algorithm MD5(中文名为消息摘要算法第五版)为计算机安全领域广泛使用的一种散列函数,用以提供消息的完整性保护。MD5最广泛被用于各种软件的密码认证和钥匙识别上,MD5具有很好的安全性(因为它具有不可逆的特征,加过密的密文经过解密后和加密前的东东相同的可能性极小)。MD5 算法的哈希值大小为 128 位。MD5 相关类:System.Security.Cryptography.MD5System.Security.Cryptography.MD5CryptoServiceProvider()System.Web.Security.FormsA 阅读全文
posted @ 2011-11-17 15:28 Jason#Li 阅读(340) 评论(0) 推荐(0) 编辑
摘要: 动手写了这个“区别中英文截取固定字符”的jQuery插件,暂且命名为fixtext吧,相信前端的兄弟们,这种情况会经常遇到,但是一直找不到 太完美的解决办法,通常下用css截取,但是css有弊端,最令人不满意的是,限定宽度后有可能会截掉不完整的字符,相当的不雅,后台截取当然最好,但是 多数情况下PD不一定愿意干这个活。今天特意写了这个插件,基本能满足大家的工作需要了,包括中英文混排的文字,并且可以区分UTF-8,和 GB2312,这样大家应该清楚,中文的编码不一样占的字符也是不一样的,UTF-8占了三个字符,而GB2312占了两个字符,另外还包括一个非常实用 的功能——是否保留省略号,用起来还 阅读全文
posted @ 2011-11-14 14:28 Jason#Li 阅读(390) 评论(0) 推荐(0) 编辑
摘要: AES简介AES(The Advanced Encryption Standard)是美国国家标准与技术研究所用于加密电子数据的规范。它被预期能成为人们公认的加密包括金融、电信和政府数字信息的方法。AES 是一个新的可以用于保护电子数据的加密算法。明确地说,AES 是一个迭代的、对称密钥分组的密码,它可以使用128、192 和 256 位密钥,并且用 128 位(16字节)分组加密和解密数据。与公共密钥密码使用密钥对不同,对称密钥密码使用相同的密钥加密和解密数据。通过分组密码返回的加密数据 的位数与输入数据相同。以下是我经过整理的代码,希望对大家有所帮助:/// <summary> 阅读全文
posted @ 2011-11-14 10:06 Jason#Li 阅读(1030) 评论(0) 推荐(0) 编辑