Archive for the '技术-mozilla' Category


关于Google Chrome的那些事儿

    Google Chrome出来后,整个互联网都处于亢奋之中,铺天盖地都是关于Chrome的专题文章、博文,多到有点让人发吐的地步。大家从云计算入口、SaaS服务、无线互联网、浏览器等角度谈论了Chrome对于Google的战略意义,也有大量从“产品设计、用户体验”角度大力推崇其极简主义风格的,呵呵,当然更少不了的“挑战微软的垄断地位、挑战微软的霸权”之类的中国特色的口号。

    由于这段时间忙项目开发的事情,也没时间仔细去思考此事情,今天有空梳理一下自己对Google Chrome的理解。

1、战略性产品 vs. 战术性产品

    我同意Google Chrome对于Google整个互联网战略布局的意义。就目前而言,浏览器仍然是互联网应用的“入口”,作为”互联网入口“的客户端比网页形式的在线应用在展现上及服务推送上更为灵活,更能够有效培养用户对服务的依赖性和忠诚度,因此客户端是每一个互联网公司必争的地盘。对Google而言,应该是希望通过Google Chrome来摆脱对操作系统、浏览器等第三方资源的依赖,为自己的服务及应用找一个统一的控制点和接入点(当然这些服务及应用也可以以当下时尚的“云计算”的外壳来包装),早期的Toolbar、Desktop、Gtalk等桌面应用已经无法支撑Google的需求。Chrome早晚肯定会成为Google所有应用的聚合平台和入口平台,尽管目前Beta版本没有附带任何Google的产品。

    目前互联网大战的游戏才刚刚开始,目前只是google暂时领先(尽管其领先的优势还是蛮明显的),谁能够真正成为千秋万代的霸主尚言太早。其实并不是google做得太好了,而是因为微软做得太差了,看看微软的互联网产品就知道其内部战略有多么的混乱,真浪费了那么多好的资源,其实微软并不缺互联网应用的基础,缺少的是具有互联网思维方式、持续性的互联网战略及舍弃当前部分利益挥刀自宫的决心。但如果微软调整好其互联网战略,那这场互联网游戏就很好玩了,其Office Live(商务化平台)+XBox Live(娱乐化平台)+Windows Mobile(无线互联网平台)+其他传统资源及其他Live应用的组合(例如垃圾的Live Search)还是蛮具有杀伤力的,尤其是在操作系统、浏览器等互联网基础设施上其先天的优势。其中基于XBox Live的娱乐化平台(尽管目前尚处于亏损状况),个人极其看好其未来,而Google目前尚未有任何能力和资源能够进入。

   从微软这个公司的基因分析而言,个人认为不管微软目前互联网战略有多么糟糕,这个庞大的帝国肯定会顺利完成其转身的,只是是其付出的时间及成本而已,因此从Google角度而言,必须在微软完成转身前构筑起竞争壁垒,而通过对互联网入口的控制来强化自己对整个互联网的话语权是手段之一。那么对于Google而言,Google Chrome算是“战略性产品”、“战术性产品”抑或是“20%时间的产品”,是用于防御、进攻、防御性进攻?从Google各位老大的重视程度来看,Google Chrome应该是一个战略性产品,而就目前chrome的产品特征目前尚看不出有太多进攻性的特征,正如施密特所言“由于试图防止微软利用其占市场主导地位的Internet Explorer浏览器包抄自己,谷歌的此项决定带有一定的防御成分”。

    既然是战略性产品,就我辈理解,那Google Chrome所被寄予的期望就不单纯是浏览器了,其承载的Google通过客户端(PC、无线)掌控互联网入口的野心。

2、Google Chrome的朋友和敌人(Google Chrome vs. Firefox)

   伟大领袖告诉我们:“谁是我们的敌人?谁是我们的朋友?这个问题是革命的首要问题 ”

   我相信Google在打算自己推出Chrome前所作的产品规划中肯定已经明确回答了此问题,不知其内部是怎样定位Firefox、Opera、Safari这些早期的合作伙伴的。其实Google Chrome最大的受伤者不是微软,我觉得是Firefox,也是Google自己。预计在未来一段时间内,Google还是会作为Firefox顶级的商务合作伙伴(不是技术合作伙伴)对Firefox进行赞助,但没有理解Google自己为何对Firefox现有各种社区资源、丰富成熟扩展、良好的合作关系不顾,而直接选择了基于Webkit重启炉灶来开发自己的东西。如果是以为了提供“更快的速度、更好的用户体验、更强大的功能”的创新噱头而采用这样的策略,我觉得至少就目前Beta版本功能而言,Google Chrome并不能称得上一个典型的“Google式“创新的产品,如果一定要说创新,我觉得只能说是杂交了当下各种浏览器部分优点的产品而已。Google Chrome或许有美好的未来,但就当前而言,Google 在客户端战略上需要做的应当是团结一切可以团结的力量,利用一切可以利用的资源来帮助自己达到革命目标,而不是现在就开始从阵营内部分化。

    Google Chrome的目标不应当是做好的浏览器,而是为用户使用Google各种应用及服务(云计算)提供最好的接入点。其实Google Chrome可以考虑采用Webkit+Gecko双核心策略,这样可以兼顾各方的利益,同时可以应当充分利用Firefox现有的各种资源。

3、简洁制胜?(Google Chrome vs. Gtalk)

    其实Google并不是没有好的桌面端(手机端)整合接入工具, 一直觉得Google 其实白白浪费了Gtalk这么好的整合工具。不知Google对Gtalk的定位是怎样的,Gtalk发展了这么多年,一直还是到死不活的状态。一个软件出道时候标榜自己简洁可以博得众多的喝彩,但要是经过这么多年还是简洁到什么功能都不完善的程序,那还不如放弃算了。简洁≠功能简单≠功能不能强大。

    其实Gtalk要是早就采用开放平台策略(不单纯是通信协议的开放),参考Firefox或Chrome的扩展机制,提供一个足够简洁的核心基础框架,然后让众多人去帮助做插件和应用,这样可以保持内核框架的简洁和功能强大的平衡性,同时可以形成自己核心的社区。要是Gtalk早就按照此种思路去做,尤其是通过Gtalk来整合其搜索、地图、Orkut、Blogger等社区化元素,那Google现在做SNS或Chrome就容易多了。

    历史总是一次一次重复类似的故事,不知当年鼓吹“Gtalk简洁制胜,只用Gtalk”的各位仁兄们还有多少人仍然在坚持自己当初的承诺,但愿Google Chrome不要再走Gtalk及其他诸如Blogger、Orkut等Google产品老路子。

 

4、Google Chrome的核心应用场合

   众多人都说无线互联网是Google Chrome是核心应用场合。是的,没错,无线互联网是下一个Big Deal,当然少不了Google,当然也少不了Google的战略性产品的身影。只是个人觉得Google Chrome的最大价值是google各种应用的聚合接入点,而不单纯是其中的一个市场,也不单纯是一个浏览器本身。

   其实这一点Google Chrome应当充分学习Firefox社区及各种应用扩展的思路,把自己的各种应用无缝融入Google Chrome中,我想这应该是Google内部度量Google Chrome是否成功的标准之一。

   Google Chrome距离成功还有很大的距离,只不过这对于我辈并不重要,重要的是浏览器战火的重燃、竞争的加剧才能激发各产品的创新动力,而我们是最大的受益者。

Firefox 3内存占用过大问题-都是隐私数据惹的祸

    使用Firefox近3年时间了,经历了从1.5->2.0->3.0版本的升级,见证了Firefox在功能及性能的逐步完善,尤其是3.0版本在内存占用上有了明显的改善。由于在Profile中存放了大量的扩展的数据及各种隐私数据,因此每一次升级都是先升级Firefox,然后直接拷贝原来profiles文件夹到新的版本中,然后通过firefox.exe -profile "Profiles"参数指定使用的profile。每一次升级都没有遇见太大的问题。最近Firefox由于安全漏洞问题,自动从3.0升级到了3.0.1,升级后发现Firefox内存占用狂大,启动后内存经常占用700多M,CPU占用也经常是100%,导致整个系统速度极其缓慢。

    由于采用安装完成后firefox缺省的profile,内存占用只是在50M,CPU占用也很正常,因此应该是Profile中扩展的问题,开始怀疑是一些扩展升级惹得祸。

1、漫漫调优路

  • 禁用所有的扩展、主题及插件

    直接禁用所有的扩展、主题及插件(尤其是java、Adobe Reader 、flash几个插件),启动后内存占用仍然是700多M,CPU占用也经常是100%.

    看来还不是扩展装得太多或扩展升级后的问题.

  • 调优各种参数

    browser.cache.memory.enable=true

    browser.cache.memory.capacity=18432

    security.enable_java=false 禁用java

    browser.sessionhistory.max_total_viewers=0

    config.trim_on_minimize=true

    同时把DownThemAll及下载历史数据进行了清楚

    调试上述参数后,仍然无效,内存占用和CPU占用也是很大。

  • 安装调优程序

    使用了cache status、firetune几个扩展对内存进行调优,效果也不明显

    让人快疯了,又不想重建profile,然后一个一个把profile中各个扩展的数据重新导入。

    尝试了清空隐私数据操作,把包括Tab Mix Plus 、浏览历史、下载历史、已保存表单和搜索历史、高速缓存、Cookies、脱机网站数据、已保存的密码、已通过验证的会话、DownThemAll!历史和队列所有的数据都进行了清除,Firefox的内存和CPU占用竟然神奇般的恢复了正常。

    看来可能还是这些数据惹得祸,只不过很奇怪的是使用Firefox 3的时候没有出现这样的问题.

  

2、我的Firefox配置

启用扩展: [38]

禁用扩展: [22]

全部扩展: 60
已安装主题: [5]

已安装插件: (7)

  • 2007 Microsoft Office system
  • Adobe Acrobat
  • IE Tab Plug-in
  • Microsoft? DRM
  • Mozilla Default Plug-in
  • Shockwave Flash
  • Windows Media Player Plug-in Dynamic Link Library

 

3、参考资料

http://forums.mozillazine.org/viewtopic.php?t=354828

http://hi.baidu.com/hilyjiang/blog/item/06579e51c4b38c8e8d543078.html

用压缩工具来提高web应用程序效率

    在网站性能优化时候,Yahoo Performance Team的rules for high performance web sites是较好的调优指南(或者yahoo的大牛Steve Souders在其《High Performance Web Sites》书中提出提高网页效率的14条准则),Firefox的插件Firebug及Yahoo提供的Firebug 插件Yslow(http://developer.yahoo.com/yslow/)也是进行性能调优较好的工具。

    按照调优指南,一个重要的原则就是对js、css等文件采用Gzip、deflate等压缩工具进行压缩,以降低网络传输带宽。

1、网页压缩原理

    网页压缩是一项由WEB服务器(应用服务器)和浏览器之间共同遵守的协议,也即WEB服务器(应用服务器)和浏览器都必须支持该技术,现在流行的浏览器(IE、FireFox、Opera )都是支持的;Lighttpd、Apache 、Ngix、 IIS、Tomcat等应用服务器或web服务器都支持。双方的协商过程如下:

  1. 浏览器请求某URL,并在请求的头 (head) 中设置属性 accept-encoding 值为 gzip, deflate,表明浏览器支持 gzip 和 deflate 这两种压缩方式(事实上 deflate 也是使用 gzip 压缩协议);
  2. WEB 服务器接收到请求后判断浏览器是否支持压缩,如果支持就传送压缩后的响应内容,否则传送不经过压缩的内容;
  3. 浏览器获取响应内容后,判断内容是否被压缩,如果是则解压缩,然后显示响应页面的内容。

    具体的交互过程可以利用Livehttpheader来查看http的交互过程。

2、网页压缩的方法

对JS、CSS文件压缩分为两大方面:

  • 对js、CSS采用yuicompressor、JsPacker这样的工具对js等文件进行压缩。主要是删除诸如空行、回车换行、注释等无用的字符,减少文件本身的大小,这也是诸如jquery、prototype等javascript库发布时候所采用的方法。
  • 采用应用服务器(web服务器)及浏览器对gzip、deflate等压缩方法的支持来对请求进行实时的压缩

    在实际应用时候,应当结合两种方法来使用。在大型应用中,会采用lighttpd、apache这样的web服务器来做前端,可以在lighttpd或apache中配置gzip、deflate支持。这里只是简单说明一下采用Jboss对gzip的支持来提高web应用程序的效率

3、修改jboss配置,让其支持gzip压缩

    这里使用jboss 4.2.2,servlet容器采用的是tomcat,因此让jboss支持gzip的配置方法,实际上就是修改tomcat的配置

    修改jboss-4.2.2.GA/server/default/deploy/jboss-web.deployer/server.xml,增加如下内容

    <Connector port=”80″ address=”0.0.0.0″

         maxThreads=”1500″ maxHttpHeaderSize=”8192″

         emptySessionPath=”true” protocol=”HTTP/1.1″

         enableLookups=”false” redirectPort=”8443″ acceptCount=”100″

         connectionTimeout=”20000″ disableUploadTimeout=”true”

         compression=”on”      

         compressableMimeType=”text/html,text/xml,text/plain,text/css,text/javascript,application/xhtml+xml,

         application/x-javascript,application/javascript,text/xhtml”

        />

    在Tomcat与gzip相关的几个参数如下,具体可以参考

http://www.jboss.org/file-access/default/members/jbossweb/freezone/docs/2.1.0/config/printer/http.html

或:

http://tomcat.apache.org/tomcat-5.5-doc/config/http.html

  • compressableMimeType

    The value is a comma separated list of MIME types for which HTTP compression may be used. The default value is text/html,text/xml,text/plain.

  • compression

    The Connector may use HTTP/1.1 GZIP compression in an attempt to save server bandwidth. The acceptable values for the parameter is “off” (disable compression), “on” (allow compression, which causes text data to be compressed), “force” (forces compression in all cases), or a numerical integer value (which is equivalent to “on”, but specifies the minimum amount of data before the output is compressed). If the content-length is not known and compression is set to “on” or more aggressive, the output will also be compressed. If not specified, this attribute is set to “off”.

  • noCompressionUserAgents

  The value is a comma separated list of regular expressions matching user-agents of HTTP clients for which compression should not be used, because these clients, although they do advertise support for the feature, have a broken implementation. The default value is an empty String (regexp matching disabled).

采用gzip压缩后,一个典型例子为struts2中所采用的dojo.js,原来大小为258K,压缩后只有72K,压缩的效果还是很显著的

4、调试

    在web开发时候firefox提供了比IE等浏览器更好的web开发工具

    Firebug:http://www.getfirebug.com/

    Yslow:http://developer.yahoo.com/yslow

    Livehttpheader:http://livehttpheaders.mozdev.org/

    Web Developer: http://chrispederick.com/work/web-developer/

4.1、采用Yslow查看对网站的建议

yslow

3.2、采用Firebug参看页面交互情况

firebug

另外今天是Firefox3正式发布的日子,下载支持一下,感谢Firefox提供了如此好的工具。

在Ubuntu上使用Xvfb或vncserver抓取网页画面制作thumbnail

1、安装xvfb或vncserver

apt-get install xvfb

apt-get install vncserver xvncviewer

不用两个都安装,xvfb和vncserver都能够在没有安装X-Windows的情况下,提供X终端服务。可以只安装其中一个,建议安装vncserver,以可以通过诸如tightvnc之类的客户端进行管理。因此就不暂时测试xvfb方式,有空再试验。

2、安装imagemagick

apt-get install imagemagick

3、创建firefox 制作thumbnail时候使用的profile,避免已安装extension的干扰。

firefox -CreateProfile Screenshot

关于firefox的command line,可以参考:

http://kb.mozillazine.org/Command_line_arguments

4、生成thumbnail

vncserver -geometry 1024×768 -depth 24

#DISPLAY=:1 firefox -P "Screenshot" &

DISPLAY=:1 firefox -P "Screenshot"  -new-window http://www.yeeach.com &

DISPLAY=:1 import -window root yeeach.png

不知为何使用命令:

DISPLAY=:1 firefox -P "Screenshot" -remote "openurl(javascript:window.open(’http://www.yeeach.com/‘,”,’fullscreen=yes,toolbar=no,width=1024,height=768′))"始终报错:

Error: No running window found

因此DISPLAY=:1 firefox -P "Screenshot" &  实际上没有起作用,因此注释掉,等有空时候再具体研究原因。

5、为了方便测试,可以首先清除掉X11相关的lock文件和进程

rm -rf /tmp/.X11-unix/* ;rm -rf /tmp/.X*lock

ps -ef|grep X|grep -v grep |awk ‘{print $2 }’ |xargs kill -9

 

5、总结:

  • 采用此种方式如果处理过程中,如果出现非正常关闭的情况,firefox打开时候会提示“恢复上次会话”的提示,因此可能导致抓取页面不成功,比较烦人。可以采用的解决方案:

    a、修改配置参数browser.startup.page,关掉firefox的崩溃恢复提示机制。
      推荐设置为 3。firefox 会恢复崩溃时的会话页面,但是正常关闭时,你可能也需要上次的那些会话页面

      0 启动打开 about:blank 空页面

      1 启动打开homepage 主页面

      2 启动打开上次最后关闭时的页面

      3 启动打开上次最后会话的那些页面

    b、采用Tab Mix PlusSessionPage 扩展设置

googledotcom

  • 此种方法实际上是利用了imagemagick抓屏的功能,抓取用firefox打开页面的thumbnail,尽管可以利用imagemagick裁剪不需要的区域,相对于诸如page saver或screengrab的方案或基于gecko的方案还是比较不是很精准,尤其是不能滚动完整抓取多屏的页面。
  • 在调试时候,用tightvnc或其他vnc客户端登录终端进行管理还是很方便,能够及时排查出现的问题,这一点比xvfb方便。

6、参考资料

http://kb.mozillazine.org/Command_line_arguments

http://www.semicomplete.com/blog/geekery/xvfb-firefox.html

http://brad.livejournal.com/2015327.html

http://pc90.narc.affrc.go.jp/meng/?p=8

 

Technorati 标签: , , , ,

基于mozilla gecko内核的HTML Renderer解决方案

基于mozilla gecko内核可以让应用程序直接调用gecko的html renderer功能可以生成页面的thumbnai。目前基于firefox这样的开源浏览器相关技术(主要是gecko内核,其他内核暂时不考虑)的HTML Renderer方案大致可以分成如下几种:

  • 采用firefox extension方式,然后通过提供命令行接口,例如page saver
  • 采用xvfb+firefox或vnc+firefox,利用命令行调用xvfb或vnc调用firefox形成的图形缓冲区,然后用ImageMagick生成thumbnail
  • 采用直接调用gecko 接口或封装接口来生成thumnail

  从性能及扩展性上来讲,第三种方式最为理想,收集了一些基于Java或Python的HTML Renderer

1、Java

 jrex

 cobralobobrowser

 Flying Saucer Project

mozilla blackwood webclient

 webrenderer(收费)

其他收费软件,可以参考

Java Sketchbook: The HTML Renderer Shootout, Part 2

2、Python+GTK

GtkMozEmbed

wxMozilla

pyxpcom

3、Ruby+GTK

  moz-snapshooter.rb

  实际上也是利用了GtkMozEmbed

  http://oltsm.blogspot.com/2007/07/ruby-website-screencapture-howto.html

参考资料

http://blogs.pathf.com/agileajax/2007/01/how_to_really_d.html

http://today.java.net/pub/a/today/2004/05/24/html-pt1.html

http://java.net/pub/a/today/2004/06/14/html-pt2.html

http://www.hackdiary.com/archives/000055.html

http://oltsm.blogspot.com/2007/07/ruby-website-screencapture-howto.html

http://weblogs.mozillazine.org/roc/archives/2005/05/rendering_web_p.html

http://mail.python.org/pipermail/python-list/2006-December/419414.html

http://blog.pixnet.net/kewang/post/4756715

https://aptframework.dev.java.net/gooey/screenCapture.html

http://forum.java.sun.com/thread.jspa?threadID=5191504&tstart=75

http://schmidt.devlib.org/java/save-screenshot.html

http://forum.java.sun.com/thread.jspa?threadID=477654&messageID=2220990

http://forum.java.sun.com/thread.jspa?threadID=604040

http://ilovelate.blog.163.com/blog/static/601420074610168616/

http://zh.wikipedia.org/wiki/Trident

 

自动生成网页截图(Screenshot)方法总结

alexasnap shotsblogmarkscoolirisInterclue等站点中都提供了站点缩略图功能,恰当地使用这种技术手段,对于提高网站的互动性还是有一定好处的,当然对于像snap shots这样的广告技术提供商而言,好处肯定是能够带来更多的广告和流量,在snap shots的站点上倒有广告式比较详细的说明,权作参考snap shots about

对网站用户有什么好处?
Snap Shots使用户们能够对链接加以控制,决定点击那一些连接而使其变得更为有用、从而帮助他们以更高的速度和精确度游览互联网。它是一种经过改进的冲浪方法,因为连接不再是盲目的,而是一种信息来源。

对网站所有者有哪些好处?

Snap Shots为网站拥有者提供了高质量的连接预览功能,让他们能为用户提供一种不仅能享受丰富信息而又能无所不能的经历。而且它是完全免费的!

 

1、应用场景

 

2、技术实现

在技术实现上,一般都是直接利用浏览器本身对网页渲染输出功能获得网页的图像,然后通过python、perl、php或C++其他高级语言来调用。比较典型的实现方式是Pearl Crescent Page Saver(非开源)利用firefox的extension机制实现Screen Capture,然后封装成命令行。

  • 基于mozilla或firefox

http://www.hackdiary.com/archives/000055.html

http://marginalhacks.com/Hacks/html2jpg/

http://pearlcrescent.com/products/pagesaver/ (Non-Open source)

http://www.boutell.com/webthumb/

http://www.burtonini.com/blog/computers/mozilla-thumbnail-20040614.xhtml

一些基于firefox的extension,可用于手动抓屏。另外也可以参照page saver 的实现方式,在screengrab基础上进行改造,提供命令行方式,这样就可以直接调用了。

screengrab

page saver 

Techsmith SnagIt for Firefox

另外可以基于xvfb+firefox+ImageMagick方式,直接用命令行方式生成thumbnail,此种方式最为简单,可以参考:

http://www.semicomplete.com/blog/geekery/xvfb-firefox.html

http://brad.livejournal.com/2015327.html

  • 基于safari

http://www.paulhammond.org/webkit2png/

http://www.derailer.org/paparazzi/

  • 基于ie内核

  http://iecapt.sourceforge.net

  http://www.websitescreenshots.com (Non-Open source)

  http://snap.otag.cn/

  http://sourceforge.net/projects/thumb-page/

  • 基于KDE Konqueror

  http://khtml2png.sourceforge.net/

RobotReplay应该就是基于khtml2png实现的,参看Website Screenshots and Thumbnails on Linux

 

3、参考资料:

3.1、文档

http://www.dlib.org/dlib/january06/foulonneau/01foulonneau.html

http://labnol.blogspot.com/2006/06/how-to-capture-save-screenshots-of.html

http://labnol.blogspot.com/2005/12/take-screen-capture-of-webpages-in.html

http://www.zubrag.com/scripts/website-thumbnail-generator.php

http://www.semicomplete.com/blog/geekery/xvfb-firefox.html

http://brad.livejournal.com/2015327.html

http://blogs.nitobi.com/jake/index.php/2007/05/09/website-screenshots-on-linux/

http://www.titov.net/2006/03/19/how-to-make-site-screenshots-with-linux-server/

http://www.codeproject.com/useritems/Website_Thumbnails_in_C_.asp

http://www.codeproject.com/internet/htmlimagecapture.asp

http://www.codeproject.com/useritems/website_screenshot.asp

http://blogs.pathf.com/agileajax/2007/01/how_to_really_d.html

http://blogs.pathf.com/agileajax/2006/12/how_to_do_page_.html

Explore relationships among Web pages visually

Free Website Thumbnail Services

3.2、项目

http://iecapt.sourceforge.net

http://marginalhacks.com/Hacks/html2jpg/

http://khtml2png.sourceforge.net/

http://www.hackdiary.com/archives/000055.html

http://www.paulhammond.org/webkit2png/

http://www.boutell.com/webthumb/

https://addons.mozilla.org/en-US/firefox/addon/1146

http://snap.otag.cn/

http://fastcgi-gallery.platon.sk/

3.3、服务或商用

http://pearlcrescent.com/products/pagesaver/

http://www.websitescreenshots.com

http://thumbnailspro.com/

http://www.browsercam.com/

http://www.tooto.com/html2image/

http://webthumb.bluga.net/

http://www.thumbalizr.com/

http://www.websnapr.com

http://www.artviper.com/tools.php

http://www.websitethumbnails.net

http://www.webseitentuning.de/screenshots.php

http://thumbnailspro.com

 

 

关于firebug和yslow的资料汇总帖

在“Firebug 及yslow的相关资料”已经有一些相关文档,作为补充,再整理和总结关于firebug的一些相关文档,供查找。

Firebug官方文档

An In-depth Look At The Future of Javascript Debugging With Firebug

Estelle Weyl’s Introduction to Firebug

John Barton’s introduction to the Firebug source(Firebug internals

Firebug Crash Course(slideshare)

Hacking Web 2.0 Applications with Firefox

Hacking Digg With Firebug and jQuery

Firebug Tutorial - Logging, Profiling and CommandLine (Part I)

Firebug Tutorial - Logging, Profiling and CommandLine (Part II)

AJAX Debugging with Firebug

Javascript的调试利器:Firebug使用详解

初识Firebug 全文 — firebug的使用

 

Introduction to YSlow: optimizing your actual and perceived download speed

yahoo developer network YSlow project

rules for high performance web sites

High Performance Websites Lalit Patel(slideshare)

High performance web sites(slideshare)

Using Firebug & YSlow(slideshare)

yahoo yui项目组一哥们的blog

Technorati 标签: , , , ,