摘要:
Fiddler是最强大最好用的Web调试工具之一,它能记录所有客户端和服务器的http和https请求,允许你监视,设置断点,甚至修改输入输出数据. 使用Fiddler无论对开发还是测试来说,都有很大的帮助。 阅读目录 Fiddler的基本介绍Fiddler的工作原理同类的其它工具Fiddler如何捕获Firefox的会话Firefox 中使用Fiddler插件Fiddler如何捕获HTTPS会话Fiddler的基本界面Fiddler的统计视图QuickExec命令行的使用Fiddler中设置断点修改RequestFiddler中设置断点修改ResponseFiddler中创建AutoResp 阅读全文
摘要:
介绍 最近几个月忙得实在是不可开交,终于把《深入理解JavaScript系列》的最后两篇“补全”了,所谓的全是不准确的,因为很多内容都没有写呢, 比如高性能、Ajax安全、DOM详解、JavaScript架构等等。但因为经历所限,加上大叔希望接下来写点其它东西,所以此篇文字就暂且当前完结篇 的总结吧,以后有时间的话,可以继续加上一些未涉及的专题内容。 网络文章来源 本系列文章参考了大量的互联网网站,在此向各位网站拥有者、博主、提到的以及未提到的作者们说一声:多谢感谢了。 本系列文章主要参考了如下站点: 五大原则:http://freshbrewedcode.com/derekgreer ECM 阅读全文
摘要:
介绍 本篇我们介绍的一些模式称为初始化模式和性能模式,主要是用在初始化以及提高性能方面,一些模式之前已经提到过,这里只是做一下总结。 立即执行的函数 在本系列第4篇的《立即调用的函数表达式》中,我们已经对类似的函数进行过详细的描述,这里我们只是再举两个简单的例子做一下总结。 // 声明完函数以后,立即执行该函数 (function () { console.log('watch out!'); } ()); //这种方式声明的函数,也可以立即执行 !function () { console.log('watch out!'); } (); // 如下方式也都可 阅读全文
摘要:
介绍 本篇主要是介绍Function方面使用的一些技巧(上篇),利用Function特性可以编写出很多非常有意思的代码,本篇主要包括:回调模式、配置对象、返回函数、分布程序、柯里化(Currying)。 回调函数 在JavaScript中,当一个函数A作为另外一个函数B的其中一个参数时,则函数A称为回调函数,即A可以在函数B的周期内执行(开始、中间、结束时均可)。 举例来说,有一个函数用于生成node var complexComputation = function () { /* 内部处理,并返回一个node*/}; 有一个findNodes函数声明用于查找所有的节点,然后通过call.. 阅读全文
摘要:
看了Tomxu的文章,特写下一个他的一个js程序的执行过程。function ConcreteClass(){ this.performTask=function(){ console.log(this) this.preTask(); console.log('一些代码'); this.postTask(); }}ConcreteClass.prototype.add=function(){console.log('测试使用。')}function AbstractDecorator(decorated){//抽象类 Abstract this.perform 阅读全文
摘要:
判断原理: JavaScript是前端开发的主要语言,我们可以通过 编写JavaScript程序来判断浏览器的类型及版本。JavaScript判断浏览器类型一般有两种办法,一种是根据各种浏览器独有的属性来分辨,另 一种是通过分析浏览器的userAgent属性来判断的。在许多情况下,值判断出浏览器类型之后,还需判断浏览器版本才能处理兼容性问题,而判断浏览器的 版本一般只能通过分析浏览器的userAgent才能知道。 浏览器类型 ⑴浏览器特有属性 ⑵根据userAgent 浏览器版本 ⑴根据userAgent 对于手机浏览器判断 1.如何判断是否为移动终端 利用正则mat... 阅读全文
摘要:
在DOM接口规范中,有四个基本的接口:Document,Node,NodeList以及NamedNodeMap。在这四个基本接口 中,Document接口是对文档进行操作的入口,它是从Node接口继承过来的。Node接口是其他大多数接口的父类,象 Documet,Element,Attribute,Text,Comment等接口都是从Node接口继承过来的。NodeList接口是一个节点的 集合,它包含了某个节点中的所有子节点。NamedNodeMap接口也是一个节点的集合,通过该接口,可以建立节点名和节点之间的一一映射关系,从而利 用节点名可以直接访问特定的节点。下面将对这四个接口分别做一些 阅读全文
摘要:
目录: 一、引入 二、经历了就能理解 三、读书要分级 四、只读经典 五、别吝惜你动笔的那点时间 一、引入 看到这个题目的时候你可能会感到有点好笑:“这还用问,看书就是把书看了一遍呗..” 没错,我们从小到大就是这样想的,也是这样看书的,信手拈来一本叫作"书"的东西,从头到尾就开看了!随时年龄的增长,我们的“阅历”也多了起来了,但你 是不是也有和我一样的感觉——书是读了不少,真正入脑的,能融入自己思想的内容却少之又少,而且随着年头的增加,你越来越不记得自己读过这些书,更不用提 书里到底大概是些什么内容了!这就是我们的长久以来的读书方式。。。 你会不会也这样想,如果我能把我从小 阅读全文
摘要:
1.Fiddler相对其他调试工具的优势 HttpWatch 和 Firebug绝大多数前端开发人员都比较熟悉,但是HttpWatch虽然可以抓到每个 HTTP 请求的全部数据,但无法修改返回的数据;尽管Firebug可以修改 HTML和CSS,但是在调试CGI接口时无法干预HTTP请求的参数值和CGI返回的数据。而 Fiddler作一个 HTTP 调试代理,不但能够记录客户端同服务器之间的所有 HTTP 通讯数据,还能够修改请求数据和返回数据,也叫做“构造请求”和“模拟响应”。除此之外, 添加了willow插件的Fiddler 还可以:统计数据包、修改Host、请求重定向、编码转换... 阅读全文
摘要:
Ajax无刷新分页,已经是一个大家比较熟悉的事物了,大概就是web前端页面上有一个js的方法,通过Ajax去请求服务器端的分页数据接口,拿到数据后再在页面上创建html结构,展现给用户,类似于下面这样: view sourceprint? 01 <script type=”text/javascript”> 02 function getPage(pageIndex){ 03 ajax({ 04 url:"RemoteInterface.cgi", 05 meth... 阅读全文
摘要:
Javascript组合模式是一种专为创建web上的动态用户界面而量身定制的模式。使用这种模式,可以用一条命令在多个对象上激发复杂的或递归的行为。这可以简化粘合性代码,使其更容易维护,而那些复杂行为则被委托给各个对象。组合模式的好处:使用组合模式,简单的操作也能产生复杂的结果。你不必编写大量手工遍历数组或其他数据结构的粘合代码,只需对最顶层的对象执行操作,让每一个字对象自己传递这个操作即可。这对再三执行的操作尤其有用。组合模式的弊端:组合对象的易用性可能掩盖了它所支持的每一种操作的代价。由于对组合对象调用的任何操作都会被传递到它的所有子对象,如果这个层次体系很大的话,系统的性能将会受到影响。本 阅读全文
摘要:
IE9创建DOM元素的方式较之前有了改变,开始严格遵循标准的实现,不允许通过直接传入一个完整html标记的方式来创建Dom元素。document.createElement('<iframe id="yui-history-iframe" src="http://images.cnblogs.com/defaults/transparent-pixel.gif" style="position:absolute;top:0;left:0;width:1px;height:1px;visibility:hidden;"&g 阅读全文
该文被密码保护。 阅读全文
摘要:
data(key, value) 返回值:jQuery 在匹配的元素上随心所欲的存放数据。 1.2.3 新增data(key, value) key (String) 将要设置的数据片段名。 value (Object) 新的数据值;可以是任何 Javascript 数据类型,包括数组和对象。 1.4.3 新增data(obj) obj (Object) 用于设置的键值对。 .data() 方法允许我们安全地将任何类型的数据附加到DOM元素上而不用担心循环引用和内存泄露之类的问题。 在单个元素上设置几个独立的数据,并且以后还可以分别检索到: $('body').data( 阅读全文
摘要:
最近重新温习JS,对delete操作符一直处于一知半解的状态,偶然发现一篇文章,对此作了非常细致深入的解释,看完有茅塞顿开的感觉,不敢独享,大致翻译如下。 原文地址:http://perfectionkills.com/understanding-delete/ P.S. 作者是PrototypeJS的开发组成员之一 ========分割线======== 在开始之前,先让我们看一段代码 Js代码 >>>varsum=function(a,b){returna+b;}>>>varadd=sum;>>>deletesumt... 阅读全文
摘要:
Nicholas为您讲解如何提升JavaScript的递归效率! 影响JavaScript性能的另外一个杀手就是递归,在上一节中提到采用 memoization技术可以优化计算数值的递归函数,但memoization不是万能的,不是所有的递归函数都可以用memoization技术优 化,本文介绍了这些情况,并介绍了解决办法,就是将递归转换为迭代,同时需要注意,本文末尾介绍的方案不是最终的方案,还需要和上一节优化循环的方案综合 起来才能达到最佳效果。 【原文】Speed up your JavaScript, Part 3 【作者】Nicholas C. Zakas 【译者】明达 以... 阅读全文
摘要:
Nicholas为您讲解如何提升JavaScript循环的运行速度! 根 据Nicholas的说法,有四种代码会拖慢脚本的运行,并最终导致脚本失控。分别是次数过多的同步循环、庞大的函数体、不恰当的递归和不合理的DOM调用。这篇着重讲第一个原因。最后给出了一个开发模式,替换传统的循环结构,可以完全避免脚本失控的状况发生。 【原文标题】Speed up your JavaScript, Part 1 【原文作者】Nicholas C. Zakas 在我上一篇帖子 (译文 ) 中,谈到了各个浏览器究竟会在什么情况下弹出脚本失控提示,对于Internet Explorer来说,当浏览器执... 阅读全文
摘要:
Nicholas为您讲解如何提升JavaScript函数的运行速度! 这 篇是Nicholas讨论如果防止脚本失控的第二篇,主要讨论了如何重构嵌套循 环、递归,以及那些在函数内部同时执行很多子操作的函数。基本的思想和上一节trunk()那个例子一致,如果几个操作没有特定的执行顺序,而且互相不是 依赖关系,我们就可以通过异步调用的方式加以执行,不止可以减少执行的次数,还可以防止脚本失控。本文还介绍了通过memoization技术取代递归的 方法。 【原文标题】Speed up your JavaScript, Part 2 【原文作者】Nicholas C. Zakas 上周我在... 阅读全文
摘要:
Nicholas教您如何避免Javascript脚本导致IE和其他浏览器运行缓慢 在 Web开发的时候,经常会遇到的一种情况就是浏览器提示脚本运行时间过长,停止还 是继续,无论你选择什么,相信你都会想尽一切办法让这个对话框远离你的用户们。可你是否知道,这些不同的浏览器究竟是如何判断,哪些脚本处于“失控”状态 么?本文作者,就从Internet Explorer、Firefox、Safari、Chrome和Opera五种浏览器,分析了这个情况出现的原因。 【原文标题】What determines that a script is long-running? 【原文作者】Nichol... 阅读全文
该文被密码保护。 阅读全文
摘要:
简单用法: <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html> <head> <title></title> <link rel="stylesheet" typ 阅读全文
摘要:
jQuery UI Autocomplete是jQuery UI的自动完成组件,是我用过的最强大、最灵活的Autocomplete,它支持本地的Array/JSON数组、通过ajax请求的Array/JSON数组、JSONP、以及Function(最灵活)等方式来获取数据。支持的数据源jQuery UI Autocomplete主要支持字符串Array、JSON两种数据格式。普通的Array格式没有什么特殊的,如下:?1["cnblogs","博客园","囧月"]对于JSON格式的Array,则要求有:label、value属性,如下 阅读全文
摘要:
本人也是coding很多年,虽然很失败,但也总算有点失败的心得,不过我在中国,大多数程序员都是像我一样,在一直走着弯路。如果想成为一个架构师,就必须走正确的路,否则离目标越来越远,正在辛苦工作的程序员们,你们有没有下面几种感觉? 一、我的工作就是按时完成领导交给我的任务,至于代码写的怎样,知道有改进空间,但没时间去改进,关键是领导也不给时间啊。 二、我发现我的水平总是跟不上技术的进步,有太多想学的东西要学,jQuery用的人最近比较多啊,听说最近MVC比较火,还有LINQ,听说微软又有Silverlight了…… 三、我发现虽然我工作几年了,除了不停的co... 阅读全文
摘要:
jQuery.autocomplete 是jquery的流行插件,,能够很好的实现输入框的自动完成(autocomplete)、建议提示(input suggest)功能,支持ajax数据加载。但唯一遗憾的是,在对中文输入法打开时,firefox3.0中是对中文拼音的自动匹配,而对输入后的中文无法及时触发匹配;而在我的IE6.0下,则无此问题。原因分析:Autocomplete 插件对用户输入字符的触发自动匹配是通过”keydown”事件进行的(可分析jquery.autocomplete.js第 92行),在IE6中,当输入法打开时,输入的字符是不会触发”keydown”的,只有中文输入完. 阅读全文
摘要:
6.7 实现抽象类 6.7.1 抽象类和虚函数 虚函数是类成员中的概念,是只做了一个声明而未实现的方法,具有虚函数的类就称之为抽象类,这些虚函数在派生类中才被实现。抽象类是不能实例化的,因为其中的虚函数并不是一个完整的函数,不能被调用。所以抽象类一般只作为基类被派生以后再使用。 和类的继承一样,JavaScript并没有任何机制用于支持抽象类。但利用JavaScript语言本身的性质,可以实现自己的抽象类。 6.7.2 在JavaScript实现抽象类 在传统面向对象语言中,抽象类中的虚方法必须先被声明,但可以在其他方法中被调用。而在JavaScript中,虚方法 就可以看作该类中没有定义.. 阅读全文
该文被密码保护。 阅读全文
摘要:
1. 什么是内存泄露? 内存泄露是指分配给应用的内存不能被重新分配,即使在内存已经不被使用的时候。正常情况下,垃圾回收器在 DOM 元素和 event 处理器不被引用或访问的时候回收它们。但是,IE 的早些版本(IE7和之前)中内存泄露是很容易出现的,因为内存管理器不能正确理解 Javascript 生命周期而且在周期被打破(可以通过赋值为 null 实现)前不会回收内存。 2. 为什么你需要注意它? 在大型 Web 应用程序中内存泄露是一种常见的无意的编程错误。内存泄露会降低 Web 应用程序的性能,直到浪费的内存超过了系统所能分配的,应用程序将不能使用。作为一位 Web... 阅读全文
摘要:
介绍 本篇主要是介绍创建对象方面的模式,利用各种技巧可以极大地避免了错误或者可以编写出非常精简的代码。 模式1:命名空间(namespace) 命名空间可以减少全局命名所需的数量,避免命名冲突或过度。一般我们在进行对象层级定义的时候,经常是这样的: var app = app || {}; app.moduleA = app.moduleA || {}; app.moduleA.subModule = app.moduleA.subModule || {}; app.moduleA.subModule.MethodA = function () { console.log("prin 阅读全文
摘要:
介绍 本篇主要是介绍创建对象方面的模式的下篇,利用各种技巧可以极大地避免了错误或者可以编写出非常精简的代码。 模式6:函数语法糖 函数语法糖是为一个对象快速添加方法(函数)的扩展,这个主要是利用prototype的特性,代码比较简单,我们先来看一下实现代码: if (typeof Function.prototype.method !== "function") { Function.prototype.method = function (name, implementation) { this.prototype[name] = implementation; ... 阅读全文