狠狠撸

狠狠撸Share a Scribd company logo
前端开发工具推荐



                             张所勇
           suoyong@leju.sina.com.cn
            zhangsuoyong@163.com
                         2011/10/26
Lite
神级开发工具
? Fiddler
?   作用:监听、修改请求

?   支持所有浏览器

?   下载地址
?   http://www.fiddler2.com/fiddler2/
?   Required: .netFramework
Fiddler
1、监听HTTP请求
Fiddler
HTTP请求图标含义
Fiddler
2、构建HTTP请求
Fiddler
3、过滤HTTP请求
Fiddler
4、 AutoResponse
Fiddler AutoResponse
例如:V1拍报名后,再次点击报名时提示
 已报名
Fiddler AutoResponse
Step1:
  打开蹿颈诲诲濒别谤,刷新页面,找到请求
Fiddler AutoResponse
Step2:
  请求上右键勾选Unlock For Editing
Fiddler AutoResponse
Step3:
  Inspector面板,Transformer选项下,
  勾选不压缩
Fiddler AutoResponse
Step4:
  Inspector面板,TextView选项下,修改
  代码,或者在编辑器中修改




 有时没有代码?
     因为304了,直接读取浏览器缓存了
     解决办法:强制刷新
Fiddler AutoResponse
Step5:
  去掉Unlock For Editing,将请求拖入
  AutoResponder
Fiddler AutoResponse
最后:
 刷新页面,大功告成
Fiddler AutoResponse
也可以这样
 将请求内容存为本地文件,拖入
 AutoResponder,下面选择Find a file
Fiddler
5、 Simulate Modem speeds模拟网速




调节延时时间:Ctrl+R打开配置文件
This is Fiddler!
神级开发工具
? Firebug
?   作用:查看、修改DOM、CSS
?      调试js、监听请求、平台

?   支持firefox

?   下载地址
?   http://getfirebug.com/
Firebug Console


? console.log()
? console.debug()

    ? 区别在于有没有连接
    ? 参数可以为一个也可以为多个
     ○ 例如:console.debug(a,b,c,d);
Firebug Console


? console.info()
? console.error()
? console.warn()



    ? 区别在于图标不一样
    ? 效果和console.debug一样
Firebug Console


?   console.dir()

    ? 输出一个对象的全部属性,和点DOM标签一样
    ? 例如:console.dir(window)
Firebug Console


? console.time()
? console.timeEnd()

    ? 计算代码执行时间
    ? 例如:
     ○   console.time("time");
     ○   for(var i = 0;i<1000;i++){
     ○      // do sth
     ○   }
     ○   console.timeEnd("time");

     结果
Firebug Console


?   console.assert()

    ? 断言
    ? 例如:
     ○ console.assert(true == 1) 结果正确:不输出
     ○ console.assert(true == =1) 结果错误:断言失败
Firebug Console


?   console.trace()

    ? 追踪函数的调用轨迹
    ? 例如:
Firebug Console


? console.group()
? console.groupEnd()
    ? 分组输出
    ? 例如:
Firebug Console


? console.profile()
? console.profileEnd()
    ? 性能分析



    ? 分组输出
    ? 例如:
Firebug Console


?   console.count()

    ? 记录执行次数
Firebug Console


?   console.clear()


    ? 清除控制台
Firebug 控制台


?   对于$()


    ? 如果页面内有类似jquery等定义过$:使用页面内
      的$
    ? 否则,$()相当于document.getElementById()
This is Firebug!
神级开发工具
? Greasemonkey
?   作用:针对网站使用自定义脚本
?      hack、替代手工劳动、功能改进……

?   支持:firefox

?   下载地址
?   http://www.greasespot.net
Greasemonkey 能做什么


?   是Mozilla Firefox的一个扩展

?   在任何网站执行自定义脚本

?   能做什么? 取决于你的想象力
Greasemonkey 我做过的


? 百度乐居页面检测脚本(张经纬、吕冰、张所勇)
? WAPCMS批量建地方站
? 发布系统模板域复制、添加,模板调用复制
? 百度乐居广告系统广告批量操作(吕冰、张所勇)
? ……
? 微博&家居多账户切换脚本
Greasemonkey 能做什么


?   脚本库:http://userscripts.org

?   各种脚本:网站功能改进、网页改造(去广告等)
         、百度google整合优化、自动翻页、鼠
         标手势等等……
Greasemonkey 文档、使用


? 文档:
? http://www.firefox.net.cn/dig/toc/
? http://wiki.greasespot.net/Greasemonkey_Manual:
  API

?   安装、使用、管理:
?   http://www.firefox.net.cn/dig/install/index.html
Greasemonkey 开发综述


? 1、可以使用javascript、Xpath及Greasemonkey
    自定义函数
? 2、脚本执行环境和作用域和页面中不一样,
    不会与页面内冲突
? 3、页面内的变量、函数不会被轻易干扰,可以使
    用top.wrappedJSObject获取页面内执行环境
? 4、脚本内错误大多数会报在错误控制台里
Greasemonkey 自定义函数


?   1、 Metadata_Block 元数据
// ==UserScript==
// @name My Script
// @namespace http://www.example.com/gmscripts
// @description Scripting is fun
// @include http://www.example.com/*
// @exclude http://www.example.org/foo
// @run-at document-end
// @version 1.0
// @icon http://www.example.net/icon.png
// ==/UserScript==
Greasemonkey 自定义函数


?   1、 Metadata_Block 元数据
@name 脚本名
@namespace 命名空间
@description 描述
@include 允许规则
@exclude 排除规则
@version 版本
@run-at document-end/ document-start
@icon icon
Greasemonkey 自定义函数


? 2、GM_getValue() GM_setValue()
    GM_listValues() GM_deleteValue()
? 储存持久数据本地、与cookie类似但不会发送至服务器
? 存在跨域问题,这里的“域”指的脚本,既A脚本无法读取
  B脚本存的变量
? 只能存字符串、布尔值、整数
Greasemonkey 自定义函数


?   3、GM_registerMenuCommand(name,fn)
?   添加菜单项




?   function commonFN(){
?    alert("hello");
?   }
?   GM_registerMenuCommand("hello",commonFN);
Greasemonkey 自定义函数


?   4、GM_openInTab()
?   新窗口打开页面



?   GM_openInTab("http://www.example.com/");
Greasemonkey 自定义函数


?   5、 GM_xmlhttpRequest
?   进行Ajax请求,可跨域

?   参数:
?   method             GET/POST/HEAD
?   url                请求地址
?   Headers            header头
?   overrideMimeType   可设置编码
?   data               POST的数据, 只能string
?   binary             二进制模式发送请求
?   synchronous        同步
?   user               用户名
?   Password           密码
Greasemonkey 自定义函数


?   5、 GM_xmlhttpRequest
?   进行Ajax请求,可跨域

?   参数(续):
?   onabort           abort时
?   onload            success时
?   onerror           error时
?   onprogress        请求过程中
?   onreadystatechange 0 1 2 3 4
?   upload            上传时:Object 属性可选(onabort, onerror, onload, onprogress)
Greasemonkey 自定义函数


?   5、 GM_xmlhttpRequest
?   进行Ajax请求,可跨域

?   onload等事件接受一个object参数,具有以下属性:
?   readyState        状态,01234,见下文
?   responseHeaders   响应头
?   responseText      响应体
?   status            HTTP响应代码 200、304……
?   statusText        HTTP响应文字,依赖于服务器的
Greasemonkey 自定义函数


?   5、 GM_xmlhttpRequest
?   进行Ajax请求,可跨域

?   readystate:
?   0             XMLHttpRequest对象已经创建,但还没有调用open()方法
?   1             已经调用open() 方法,但尚未发送请求
?   2             请求发送完毕
?   3             接收响应过程中
?   4             全部数据接收完毕,连接关闭
Greasemonkey 自定义函数


?   5、 GM_xmlhttpRequest
?   示例:请求发布系统历史回顾
     GM_xmlhttpRequest({
          method: 'GET',
          url: dataurl,
          overrideMimeType:'text/plain;charset=gb2312',
          headers: {
            'User-agent': 'Mozilla/5.0 (Windows NT 6.1; rv:7.0.1) Gecko/20100101 Firefox/7.0.1',
            'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
            'Accept-Charset' :"GB2312;q=0.7,*;q=0.7"
            },
          onload: function(responseDetails) {
            console.debug(responseDetails.responseText);
          }
      });
Greasemonkey 示例


? 微博&家居多账户切换脚本
? 地址:
? http://userscripts.org/scripts/show/116547
? 源码:
? http://userscripts.org/scripts/review/116547
This is Greasemonkey!
推荐开发工具
? Chrome开发人员工具
?   作用:类firebug
?   支持:chrome4.0+
Chrome开发人员工具 Resources面板


?   Frames:查看页面内所有文件
?   其他:本地存储信息,包括cookies
Chrome开发人员工具 Timeline面板


?   可查看内存使用情况和各种时间
Chrome开发人员工具 Profiles面板


?   类似蹿颈谤别产耻驳概况
Chrome开发人员工具 Audits面板


?   类似Yslow。。。。貌似给的建议更多。。
?   Css使用率很有用
Chrome开发人员工具 Console面板


?   和蹿颈谤别产耻驳控制台一样,支持肠辞苍蝉辞濒别命令
推荐开发工具
? Firebug        Lite
?   作用:类firebug                               Lite
?   支持: IE6+, Firefox, Opera, Safari and Chrome

地址:
http://getfirebug.com/firebuglite
Firebug-lite 实例


?
Firebug-lite 使用


?   将以下代码放入需调试的页面中
?   <script type="text/javascript" src
    http://static.jiaju.com/jiaju/com/js/scroll/firebug-lite.js
    "></script>

?   怎么放?
?   1、页面源代码另存为文件
?   2、fiddler autoResponder 见前文
Firebug-lite 使用


?   调用方法,F12
?   功能和firebug差不多,功能虽少,但调试IE系列问题足够了

?   推荐:解决用来IE6问题
推荐开发工具
? IETester
?   作用:测试各版本IE,大多用来测试IE6
?   支持: IE5.5+

地址:
http://www.my-debugbar.com/wiki/IETester/HomePage
IETester 使用


?
IETester 问题


?   存在一些BUG
    ? 1、前进后退按钮不正常
    ? 2、焦点有时不太正确
    ? 3、java applets 无法使用
    ? 4、IE6模式下flash不太正常
    ? 5、CSS滤镜有时不正常
    ? 6、window.open方法不正常
    ? 7、经常会报一些未知的js错误
IETester调试工具


?   调试工具:debugbar
?   地址: http://www.debugbar.com/download.php
IETester使用情境


?   使用情境:粗略调试IE6问题时

?   推荐IE6下调试方式:虚拟机(XPMod or VM、virtualbox)
推荐开发工具
? Windows         Virtual PC(XP Mode)
?   作用:win7下虚拟机
?   支持:window7

地址:
http://www.microsoft.com/china/windows/virtual-pc/
Windows Virtual PC
Windows Virtual PC 介绍


?   什么是 Windows Virtual PC?
?   Windows Virtual PC 是用于 Windows 7 的最新 Microsoft
    虚拟化技术。
?   什么是XP Mode?
?   Windows XP Mode(XPM)是基于Virtual PC 技术在
    Windows 7 中运行Windows XP 的应用程序。
?   他们之间是什么关系?
?   Windows Virtual PC是 XP Mode 的运行时引擎。
Windows Virtual PC 优点


? 1、微软官方虚拟程序,支持硬件虚拟化技术
? 2、剪贴板共享
? 3、可以使用主机打印机,智能卡等
? 4、可以使用休眠方式,打开XPM更快
? 5、XP为官方正版,不用激活
Windows Virtual PC


?   其他虚拟机软件推荐:

?   VMware Workstation
?   VirtualBox
推荐开发工具
? Beyond       Compare
?   作用:文件比较

地址:
http://www.scootersoftware.com/
Beyond Compare 功能

?   功能:
Beyond Compare

?   文本比较
Beyond Compare

?   文件夹比较
Beyond Compare

?   文件夹比较图例:
Beyond Compare

?   合并
Beyond Compare

?   应用场景:

?   SVN分支合并trunk
推荐开发工具
? FastStone        Capture
?   作用:屏幕标尺、取色、放大镜
?      截图、屏幕录制

地址:
http://www.scootersoftware.com/
FastStone Capture 功能

?   功能:标尺
FastStone Capture 功能

?   功能:取色
FastStone Capture 功能

?   功能:截图
FastStone Capture 功能

?   功能:放大镜、屏幕录制等
推荐开发工具
? Fire    Shot
?   作用:火狐截屏

地址:
http://screenshot-program.com/fireshot/
Fire Shot功能

?   功能:截屏

?   优点: 可以截取整个页面

?   缺点:仅支持火狐

?   用途:查看DOM延时渲染效果
Fire Shot功能

?   快捷键:颁迟谤濒+础濒迟+窜
推荐开发工具
? Fire    Cookie
?   作用:查看、操作cookie

地址:
http://getfirebug.com/wiki/index.php/Firebug_Extensions
推荐开发工具
? YSlow
?   作用:页面评分、优化建议
       统计、各种工具

地址:
http://developer.yahoo.com/yslow/
YSlow介绍

?   为什么用YSlow

?   1、雅虎出品
?   2、提供优化建议
YSlow功能

?   页面分析、评级、建议
YSlow功能

?   组件
YSlow功能

?   统计
YSlow功能

?   工具




推荐:All JS Beautified--寻找页面内某javascript代码
推荐开发工具
? YUI     Compressor
?   作用:压缩js、css
?   需要:java环境

地址:
http://developer.yahoo.com/yui/compressor/
http://java.sun.com/javase/downloads/index.jsp
YUI Compressor安装

?   1、安装jdk
?   2、配置JAVA_HOME环境变量
    ? 1、点击我的电脑—>属相—>高级—>环境变量—>系统变量
    ? 2、新建变量,变量名JAVA_HOME 路径:E:Program FilesJavajdk1.6.0_11 (我
      的是在E盘,你的JDK安装到那个盘,就写那个盘)
    ? 3、找到path变量,在后面添加路径:;%JAVA_HOME%jre6bin

?   3、运行YUI Compressor包中的install.cmd
YUI Compressor介绍

?   特点:安全、支持混淆
YUI Compressor压缩js

?   1、去注释
?   2、去空格
?   3、细微优化
?   4、标识符替换
YUI Compressor压缩js

?   3、细微优化
YUI Compressor压缩js

?   4、标识符替换
YUI Compressor介绍

?   支持混淆
    ? 修改compressor.cmd中
    ?   "%JAVA_HOME%binjava.exe" -jar "%~dp0yuicompressor.jar" --charset GB18030 "%~nx1" -o
        "%RESULT_FILE%“

    ? 加入或者去掉 --nomunge
推荐开发工具
? SwitchHosts
?   作用:优雅的切换hosts

地址:
https://github.com/oldj/SwitchHosts
厂飞颈迟肠丑贬辞蝉迟蝉介绍
粗浅、错误之处
 敬请指出
Thanks

More Related Content

张所勇:前端开发工具推荐