请问测试高手,/*好烦恼*/(送可能的最多的分-39)

nbyy 2001-08-14 08:18:02
现在我刚毕业,在一家电脑公司,这是我的第一个项目,任务是写测试案例.
现在是单元测试阶段,请问
*******是不是每个类里的每个方法都要写测试案例?****************
*******还有一些私有方法之间调来调去的,如果我要测它们,就要搭建起整个平台*
*******这样以来,说是单元测试,实际上是整体测试了???***********

还有,象以上的问题,我问组长,怎么测?他妈的不答,就说反正要测.
我只好来这里求救了.
...全文
151 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
BlairZhong 2001-08-18
  • 打赏
  • 举报
回复
白合测试基本上只能手写程序来测了
Last_Dodo 2001-08-18
  • 打赏
  • 举报
回复
Unit test is best done by test driver and test cases. Test driver reads in the test cases and executed it then report the result. For procedure-oriented program, the unit is the procedure/function. On OO system, it is the class. I have sent some mails to a person doing similar thing about my unit test experiences. If you send me an e-mail, I will ask the person to see if it is possible to forward the mails (include a complete test drivers and test cases on four example classes) to you. You two might be able the help each other in the future.
nbyy 2001-08-15
  • 打赏
  • 举报
回复
还是谢谢楼上的朋友,但英文书籍我看的太慢了,而且不太好买.
我是新手,有没有快捷的方法?
POTTER 2001-08-15
  • 打赏
  • 举报
回复
如下几本书都是软件测试的经典,是IEEE的CSEP中关于Software Testing部分的参考书
第一本有译本.
Testing Object-Oriented Systems, Binder, Robert V. Reading, Massachusetts: Addison-Wesley, 2000.
Complete Guide to Software Testing, 2nd Ed., Hetzel, Bill, New York, New York: John Wiley & Son, 1993.
Software Testing : A Craftsman's Approach, Jorgensen, Paul C. CRC Press, 1995.
Testing Computer Software, 2nd Ed., Kaner, Clem, Jack Falk, and Hung Quoc Nguyen, New York, New York: John Wiley and Sons, 1999.
Software Testing and Continuous Quality Improvement, Lewis, William. CRC Press 2000.
The Craft of Software Testing: Subsystems Testing Including Object-Based and Object-Oriented Testing, Marick, Brian. Prentice Hall, 1997
你的问题会在其中找到答案。其他的查一下http://china.computer.org/certification/selfstudy.htm
大部分书国内可能没有,但公司买还是划算的
nbyy 2001-08-15
  • 打赏
  • 举报
回复
楼上的好友,请问组长要我写测试案例中,包括私有方法也要有单独的案例
alfal 2001-08-15
  • 打赏
  • 举报
回复
不用管私有函数,你只测试你认为可能出现错误公有函数,检查一下是否会出错误就可以了
你只是一个测试人员,我觉得有些事情不是我自己的, 就不要去管它,否则只有自己干生气没有办法
武汉阿康 2001-08-15
  • 打赏
  • 举报
回复
fita(天外飞仙) 完全有道理!应该专注于函数的本身。主要侧重考虑边界值,以及
多重调用测试函数的稳定性。
littlesixer 2001-08-15
  • 打赏
  • 举报
回复
先那你们公司的测试用例看一看,到底精确到什么程度?
如果只是黑盒,只要考虑各种可能发生的情况进行测试,一般使用穷举.
白盒则用检查入口参数和返回参数的正确性,用等价法比较好.
fita 2001-08-15
  • 打赏
  • 举报
回复
测试的时候,不必管它调用了其他什么函数,应该专注于这个函数本身的输入和输出,测试案例也是针对输入和输出来做的。这样测试人员才能避免按照开发人员的思路走。
nbyy 2001-08-15
  • 打赏
  • 举报
回复
楼上的高手,我不可能不涉及到方法之间的调用阿,有的方法是私有的,我还要从共有的方法入手,来调私有的,然后又这个私有方法调另一个私有方法,有的还要调另一个类的方法.整个调来调去的.我无法把要测的方法单独那出来测.
--------这种情况怎么办?
FireKylin 2001-08-15
  • 打赏
  • 举报
回复
做单元测试最大的工作就是写桩函数(俗称做桩),每个方法都要写测试案例。

单元测试不要测方法之间的调用,只要测各个方法的对每个预期的输入是否得到

预期的输出,最好能考虑异常情况的输入能否正确判断出来。
itjune 2001-08-15
  • 打赏
  • 举报
回复
你所说的测试实际上就是代码测试,你必须去编写一定代码来进行测试。
这种测试对测试人员的水平要求比较高,要会多种编程工具。
一般这种测试都是在测试场景无法测试的情况进行的
台湾公司一般比较提倡这种方法,而且也比较严格。
FireKylin 2001-08-15
  • 打赏
  • 举报
回复
对于调用其它对象的私有成员函数应该用做桩的方法来做:

定义一个所测试函数要用到的对象,其私有方法只返回测试函数需要的值。

如果用到的其它函数太多说明耦合性太强了,那工作量就大了。

目前我接触到的测试工具里还没有可以自动生成桩函数的工具。

也与一些做测试工具的知名企业的工程师交流过,好像他们的观点觉得

这种事情用工具不如手工做灵活,因为桩函数返回值也是测试案例的一部分。

对返回不同的情况也要进行测试才行。
POTTER 2001-08-15
  • 打赏
  • 举报
回复
“面对对象的系统测试”华庆一等译人民邮电出版社
nbyy 2001-08-14
  • 打赏
  • 举报
回复
楼上的兄台见笑了,我还不敢这么作,
请问解救良方?????!!!!!!!
SCUM 2001-08-14
  • 打赏
  • 举报
回复
这种公司还测他个头。撑到月底、随便写个报告,拿了钱走人吧。
自己在Windows上编译的AOLServer4.5。 附带tcl8.5.7和HTTP Cookie Library。 将压缩包解压至本机任何目录,不用编译(已经编译好了)。 启动方法见src\README中的3d与3e两节。 缘起 在 Tcl 的讨论区上贴了一篇简介 Tcllib 的文章,有网友建议我写写 Tcllib 的使用心得。可是觉得光是写写 Tcllib 本身的应用好像不是很有意思,由於 Tcllib 本身有提供一些 Mime 的相关函式,相当的好用,但是光是说明这些函式的使用,也不是很有意思。刚好,之前想用 Tcl 来写个 WebMail 的程序,便想利用这个程序来说明 Tcllib 的一些功能。而使用 Tcl 来写 Web 程序最佳的方法就是在 AOL Server 上面开发,所以便决定先写篇文章来介绍一下 AOL Server,然後再来进行 Tcllib 的使用心得。 这正是这篇文章诞生的缘由!不过我正在烦恼下一篇文章究竟应该先写 Tcllib 的使用心得,还是 AOL Server 的安装,还是Tcl如何在AOL Servre上面使用呢?:( AOL Server是什麽? 看到 AOL 这三个英文字母,有没有让你联想起哪家公司呢?相信很多人直觉就想到美国在线(America Online)。是的!就是这家美国最大的ISP 。AOL Server正是他们公司的产品之一。AOL Server 不是种主机,不是个操作系统,不是个数据库系统,它是一个 Web Server。就像是 Apache Server 一样! 而 AOL 自身的 Homepage(www.aol.com) 所在的主机上,所架设 Web Server不是 Apache,也不是 IIS,正是本文要介绍的 AOL Server,一个 Open-Source(版权为MOZILLA PUBLIC LICENSE),高效能,高承载能力,稳定且支援 Multithread 的重量级 Web Server。 AOL 这麽个超大型的 ISP,它的客户数量自然不在话下,大家可以想想它的首页每天会有多少人去存取阿!一旦,它的首页挂了,那个损失可能可以媲美台湾停电时,晶圆厂的损失。由此可见 AOL Server 有多麽稳定了!想知道 AOL Server 可以承受多大的负载而不致crash吗?根据AOL自身的经验这个答案是 28,000 hits/sec 是的!!每秒二万八千个hits! AOL Server由来 其实,AOL Server 原先并非由 AOL 所发展。所以他开始时,也不是叫 AOL Server。大约在 1994 年时,在美国加州的圣芭芭拉市,两位 Unix 的高手,Jim Davidson 及 Doug McKee, 设计了一个 Web 出版系统,其中一部是一个所见即所得的网页编辑程序,叫做 NaviPress。而他们所成立的 NaviSoft 公司,希望更进一步的提供整个站点的管理功能,而不单单仅是网页的撰写。他们希望让制作好的网页可以很方便的就放到站点上面,所以他们就发展了自己的Web Server,名称就是 Navi Server。这是一个非常成功的产品,还赢得当时许多著名杂的奖项。 後来,NaviSoft被AOL 给买了下来,这个Navi Server 自然就成了 AOL 的产品之一,然後就更名为 AOL Server 棉!而AOL 也不藏私,让 AOL Server 继续以 Open Source 的形式释出来造福群众。而他们所采用的版权则是依照 Mozilla Public License。 AOL Server 的特点 前面已经有约略提过,AOL Server 的效能与稳定性。这两项优点其实是源自於他当初设计的理念!在 AOL Server 本身的架构上,特别有针对一些传统Web Server会遇到的问题经过修改。 一般网页可以为两类,静态网页与动态网页。所谓的静态网页,就是一般以档案方式存在的网页,当 client 端,要求的是一个静态网页时,Server 仅需将该网页传回给 client 即可。动态网页则是需要 Server 进行一些特殊的动作,可能是去执行一个执行档,或是直接去存取数据库,也可能是启动 Server 内建的机制来完成 client 的需求。早期最常见的技术就是 CGI,SSI,後来就演变成为 Server Scripting,如内嵌的 Perl module,PHP,Microsoft 的 ASP 等。而且,越来越多的应用都需要让 Server 能以动态方式存取数据库的内容来产生网页。 早期的 CGI 方式产生的动态网页,有个为人诟病的地方,就是每个 C
Jquery是继prototype之后又一个优秀的Javascrīpt框架。它是轻量级的js库(压缩后只有21k) ,它兼容CSS3,还兼容各种浏览器 (IE 6.0+, FF 1.5+, Safari 2.0+, Opera 9.0+)。jQuery使用户能更方便地处理HTML documents、events、实现动画效果,并且方便地为网站提供AJAX交互。jQuery还有一个比较大的优势是,它的文档说明很全,而且各种应用也说得很详细,同时还有许多成熟的插件可供选择。jQuery能够使用户的html页保持代码和html内容离,也就是说,不用再在html里面插入一堆js来调用命令了,只需定义id即可。 目录 简介 找到你了! Jquery对象 代替body标签的onload 事件机制 同一函数实现get\set ajax 渐入淡出 plugin 历史版本 1、新的事件.on() .off() 3、动画的改进 1.42版介绍 JQuery插件 让Dreamweaver支持提示代码功能 引入JQuery简介 找到你了! Jquery对象 代替body标签的onload 事件机制 同一函数实现get\set ajax 渐入淡出 plugin历史版本1、新的事件.on() .off()3、动画的改进1.42版介绍JQuery插件让Dreamweaver支持提示代码功能引入JQuery展开编辑本段简介   jQuery由美国人John Resig创建,至今已吸引了来自世界各地的众多javascript高手加入其team,包括来自德国的Jörn Zaefferer,罗马尼亚的Stefan Petre等等。jQuery是继prototype之后又一个优秀的Javascrīpt框架。其宗旨是——WRITE LESS,DO MORE,写更少的代码,做更多的事情。   由于目前高校基本尚未开JavaScript的相关课程,目前jQuery的学习,使用,研究都仅限于在职Web程序员之间。   用jq的前提,首先要引用一个有jq的文件   [removed][removed]   这个是jquery官方最新的地址。可用在自己网站里加个这个,就能使用jquery了。 但仍然建议下载到本地服务器上。 编辑本段找到你了!   在编写js库代码时候,你一定经常和“$”美元符号打交道吧?无论prototype还是DWR都使用了$代替频繁的document.getElementById()操作。jQuery也这样做了,但是,它的功能远非如此,瞧瞧以下的jQuery代码,你就会发现它的美丽:   代码   var someElement = $("#myId");   看起来比其他两个框架的要多了一个#,好,看看下面的用法:   代码   $("div p"); // (1)   $("div.container"); // (2)   $("div #msg"); // (3)   $("table a",context); // (4)   在prototype里看过这样的写法吗?第一行代码得到所有div标签下的p元素。第二行代码得到class 为container的div元素,第三行代码得到标签下面id为msg的div元素(不过最好别这样写,因为jQuery需要遍历所有的div元素,对于带id的元素,直接用$("#id"))。第四行代码得到context为上下文的table里面所有的链接元素。   如果你熟悉CSS,你会觉得这些写法很眼熟!对了。正是。看出奥妙了吧。jQuery就是如此强大,你可以轻易地找到DOM中的任何元素,而这也是jQuery设计之初query的真实含义(查询)。 编辑本段Jquery对象   jquery提供了很多便利的函数,如each(fn),但是使用这些函数的前提是:你使用的对象是Jquery对象。使一个Dom对象成为一个Jquery对象很简单,通过下面一些方式(只是一部):   代码   var a = $("#cid");   var b = $("

hello

");   var c = document.createElement("table");   var tb = $(c); 编辑本段代替body标签的onload   这个惯例,也许是除了$()之外,用得最多的地方了。下面一段代码:   代码   $(document).ready(function(){   alert("hello");   });(1)   <body>(2)   <body>这里的alert('hello');要等到页面全部加载完毕才执行,注意是全部加载,包括dom,图片等其它资源。   而$(document).ready(function(){   alert("hello");   });(1)   当dom加载完就可以执行了。   代码1同时做到表现和逻辑离。并且可以在不同的js文件中做相同的操作,即$(document).ready (fn)可以在一个页面中重复出现,而不会冲突。基本上Jquery的很多plugin都是利用这个特性,正因为这个特性,多个plugin共同使用起来,在初始化时不会发生冲突。   当使用jquery时,推荐使用代码1。 编辑本段事件机制   我们大量使用的事件可能就是button的onclick了。以前习惯在input 元素上写onclick = "fn()",使用jquery可以使javascrīpt代码与html代码离,保持HTML的清洁,还可以很轻松地绑定事件,甚至你可以不知道“事件”这个名词。   代码   $(document).ready(function()   {   $("#clear").click(function(){   alert("i am about to clear the table");   });   $("form[12]").submit(validate);   });   function validate(){   //do some form validation   } 编辑本段同一函数实现get\set   代码   $("selector").load(url,data,function(response,status,xhr))   该方法是最简单的从服务器获取数据的方法。它几乎与 $.get(url, data, success) 等价,不同的是它不是全局函数,并且它拥有隐式的回调函数。当侦测到成功的响应时(比如,当 textStatus 为 "success" 或 "notmodified" 时),.load() 将匹配元素的 HTML 内容设置为返回的数据。这意味着该方法的大多数使用会非常简单。 编辑本段ajax   这是一个ajax横行的时代。多少人,了不了解ajax的都跟着用上一把。呵。使用jquery实现ajax同样异常简单   代码   (1)   $.get("search. do",{id:1},rend);   function rend(xml){   alert(xml);   }   (2)   $.post("search. do",{id:1},rend);   function rend(xml){   alert(xml);   }   (3)   $("#msg").ajaxStart(function(){   this.html("正在加载。。。。");   });   (4)   $("#msg").ajaxSuccess(function(){   this.html("加载完成!");   });   这些都是较常用的方法,get和post用法一样。第一个参数是异步请求的url,第二个为参数,第三个回调方法。   (4)的方法会在指定的Dom对象上绑定响应ajax执行的事件。   (5)同步加载数据。发请求时锁住浏览器。需要锁定用户交互操作时使用同步方式。   var html = $.ajax({   url: "some.php",   async: false   }).responseText;   (6) 保存数据到服务器,成功时显示信息。   $.ajax({   type: "POST",   url: "some.php",   data: "name=John&location=Boston",   success: function(msg){   alert( "Data Saved: " + msg );   }   }); 编辑本段渐入淡出   代码   $("#msg").show("fast");   $("#msg").hide("slow");   $("#msg").fadeIn();   $("#msg").fadeOut();   没错,上面两行代码已经别实现了一个id为Msg的jquery对象的渐入和淡出。做一个像Gmail一样的动态加载通知条,用jquery就那么简单。两个函数接受的参数除了快慢等,还可以接收整型,作为渐入或淡出的完成时间,单位为MS。 编辑本段plugin   这也是一个插件的时代。   jquery插件给我的感觉清一色的清洁,简单。如Jtip,要使用它的功能,只需要在你的元素的class上加上Jtip,并引入jtip.js及其样式即可以了。其他事情插件全包。我喜欢jquery的一个重要原因是发现她已经有了很多很好,很精彩的插件。   写得很烂。可能大家看不出jquery的好处。嗯,光听是没用的,试用一下吧。你会发觉很有趣。   暂时告一段落吧。待有新的发现再来享。   加一些Jquery的资源:   http://www.visualjquery. com/index.xml 很好的API查询站点   http://jquery. com/demo/thickbox/ 知道lightBox吧,看看Jquery是怎样实现相同的东西   http://jquery. org. cn/visual/cn/index.xml //不错的JQUERY 中文学习 推荐   微软的visual studio 2008 sp1支持对jquery的动态提示,只要在代码页导入对应的vsdoc脚本就可以。   目前为止,jQuery的最新版本为1.7.2。 编辑本段历史版本   jQuery 1.0(2006年8月):该库的第一个稳定版本,已经具有了对CSS选择符、事件处理和AJAX交互的稳健支持。   jQuery 1.1(2007年1月):这一版大幅简化了API。许多较少使用的方法被合并,减少了需要掌握和解释的方法数量。   jQuery 1.1.3(2007年7月):这次小版本变化包含了对jQuery选择符引擎执行速度的显著提升。从这个版本开始,jQuery的性能达到了Prototype、Mootools以及Dojo等同类JavaScript库的水平。   jQuery 1.2(2007年9月):这一版去掉了对XPath选择符的支持,原因是相对于CSS语法它已经变得多余了。这一版能够支持对效果的更灵活定制,而且借助新增的命名空间事件,也使插件开发变得更容易。   jQuery UI(2007年9月):这个新的插件套件是作为曾经流行但已过时的Interface插件的替代项目而发布的。jQuery UI中包含大量预定义好的部件(widget),以及一组用于构建高级元素(例如可拖放的界面元素)的工具。   jQuery 1.2.6(2008年5月):这一版主要是将Brandon Aaron开发的流行的Dimensions插件的功能移植到了核心库中。   jQuery 1.3(2009年1月):这一版使用了全新的选择符引擎Sizzle,库的性能也因此有了极大提升。这一版正式支持事件委托特性。   jQuery 1.3.2(2009年2月):这次小版本升级进一步提升了库的性能,例如改进了:visible/:hidden选择符、.height()/.width()方法的底层处理机制。另外,也支持查询的元素按文档顺序返回。   jQuery 1.4(2010年1月14号对)代码库进行了内部重写组织,开始建立一些风格规范。老的core.js文件被为attribute.js, css.js, data.js, manipulation.js, traversing.js和queue.js;CSS和attribute的逻辑离。   jQuery 1.5(2011年1月31日):该版本修复了83个bug,解决了460个问题。重大改进有:重写了Ajax模块;新增延缓对像(Deferred Objects);jQuery替身——jQuery.sub();增强了遍历相邻节点的性能;jQuery开发团队构建系统的改进。   1.4重要新特性:   ·常用方法的性能大幅提升:重写了大部较早期的函数;   ·更容易使用的设置函数(setter function):为所有对象新增了许多易用的设置函数;   ·对Ajax的改进:引入了许多Ajax和JSON处理方面的更新,包括HTML5元素的序列化;   ·attribute(改进了.attr()的性能)、jQuery()核心函数、CSS(.css()性能有两倍提升)、特效和事件、DOM操作等也有显著改进   1.5   美国时间1月31日John Resig在jQuery官方博客发表文章,宣布jQuery 1.5正式版已经如期开发完成,可以下载使用。压缩版本jQuery Minified29KB,不压缩版本jQuery Regular(用于阅读和调试)207KB。由于jQuery已经成为目前最流行的JavaScript库,得到广泛的支持,新版本的发布当然非常引人注目。   重要变化:   1. Ajax重写Ajax模块完全进行了重写。新增一个jXHR对象,为不同浏览器内置的XMLHttpRequest提供了一致的超集。对于XMLHttpRequest之外的传输机制,比如JSONP请求,jXHR对象也可以进行处理。(详情可以参见:jQuery.ajax文档)   此外,系统的可扩展性大大增强,可以附加各种数据处理器、过滤器和传输机制,为开发新的Ajax插件提供了方便。   2. 延迟对象   延迟对象(Deferred Object,jQuery.Deferred对象)是一个可链接的(chainable)实用工具对象,实现了Promise接口,可以在回调队列中注册多个回调、调用回调队列并转发任何同步/异步函数的成败状态。正如Using Deferreds in jQuery 1.5一文中说明的,其结果是在jQuery中能够将依赖于某个任务(事件)结果的逻辑与任务本身解耦了。这一点在JavaScript中其实并不新鲜,Mochikit和Dojo等已经实现有些日子了。由于jQuery 1.5的Ajax模块内置使用了延迟对象,因此现在通过jQuery编写Ajax程序将自动获得这一功能。   开发人员借此可以使用无法立即获得的返回值(如异步Ajax请求的返回结果),而且第一次能够附加多个事件处理器。   例如,使用了新的jQuery内部Ajax API就可以实现下面的代码了:   // Assign handlers immediately after making the request, // and remember the jxhr object for this request var jxhr = $.ajax({ url: "example.php" }) .success(function() { alert("success"); }) .error(function() { alert("error"); }) .complete(function() { alert("complete"); });// perform other work here ... // Set another completion function for the request above jxhr.complete(function(){ alert("second complete"); });   此外,使用jQuery.Deferred还可以开发自己的延迟对象。更多详情参见:延迟对象文档。   3. jQuery.sub()   jQuery 1.5提供了一种创建和修改jQuery副本的方式。可以用来添加不向外部公开的方法,或者对jQuery的某些方法进行重新定义以提供新功能,或者提供更好的封装、避免名称空间冲突。当然,也可以用来开发插件,但Resig强烈建议在开发插件之前,先考虑jQuery UI widget工厂。   值得注意的是,sub函数并不提供真正的隔离,所有方法、数据、调用仍然依靠jQuery本身来支持。   4. 遍历性能提高   在新版本中.children(), .pre(), .next()几个常用的遍历函数性能有了显著提高。   5. 内部开发系统   John Resig还特别提到了jQuery团队内部开发系统的两点改变:一是服务器端用Node.js替换了老的Java/Rhino系统,使得团队可以专注于JavaScript环境的新变化;二是所用的代码优化程序从Google Closure切换到UglifyJS,新工具的压缩效果非常令人满意。   有意思的是,此前UglifyJS开发者曾经公布过自己的测试结果,表明对jQuery的压缩结果UglifyJS要比Closure略大(都在72KB左右),但运行速度快得多,而且Closure不太安全。看来,这段时间UglifyJS的进展也很快啊。   jQuery 1.5.2 在1.5的基础上修正的大量的bug   1,7b   2011年09月29日jQuery 1.7 的第一个 beta 测试版本,该版本修复了超过 50 个的问题以及带来一些新特性。   2011年11月-04日jQuery1.7正式版发布。    新版本包含了很多新的特征,特别提升了事件委派时的性能尤其是在IE7下。   新增及改进项:   1. 新的事件 APIs: .on() and .off();   2. 提升了事件委派时的性能有了大幅度的提升,尤其是在IE7下;   3. 更好的在 IE 6/7/8 上支持 HTML5;   4. 切换动画更加直观;   5. 匿名模块定义 AWD   6. jQuery.Deferred   7. jQuery.isNumeric()   被删除的方法:   event.layerX and event.layerY   jQuery.isNaN()   2012年03月24日jQuery 1.7.2正式版发布。    该版本在1.7.1的基础上修复了大量的bug,并改进了部功能。而相比于1.7.2 RC1,只修复了一个bug。值得注意的是:如果你正在使用jQuery Mobile,请使用最新的jQuery 1.7.2和jQuery Mobile 1.1这两个版本,因为之前的jQuery Mobile版本还基于jQuery core 1.7.1或更早的版本。 编辑本段1、新的事件.on() .off()   旧的 API(jQuery 1.7之前) 新的 API(jQuery 1.7) $(elems).bind(events, fn) $(elems).on(events, fn) $(elems).bind(events, { mydata: 42 }, fn) $(elems).on(events, { mydata: 42 }, fn) $(elems).unbind(events, fn) $(elems).off(events, fn) $(elems).delegate(events, selector, fn) $(elems).on(events, selector, fn) $(elems).undelegate(events, selector, fn) $(elems).off(events, selector, fn) $(selector).live(events, fn) $(document).on(events, selector, fn) $(selector).die(events, fn) $(document).off(events, selector, fn) 编辑本段3、动画的改进   在jQuery 1.7版之前,如果你在完成前停止动画,它可以创建的情况下被动画的元素永远不会返回到其全尺寸,它基本上停留在高度,这是停止动画时。 我们记住的原始尺寸固定,动画开始之前,让他们以后可以使用。 这消除了一大烦恼,尤其是在使用一定的动画切换的。 编辑本段1.42版介绍   jQuer1.4.2版本修复了1.4版本的一些错误和优化了一些不错的改进,速度比1.4.1版本又提升 了一倍,该版本对性能做了一些改进,同时增加了一些api ( .delegate() and .undelegate(). ),右图是JQuery各个版本的性能比较:   jquery1.42新特性:   加了两个新方法:.delegate() 和.undelegate(). 是对.live() and .die() 的补充. 这两个方法对特定的事件的起到简化。   范例:   $("table").delegate("td", "hover", function(){ $(this).toggleClass("hover"); });   等于使用 .live():   $("table").each(function(){ $("td", this).live("hover", function(){ $(this).toggleClass("hover"); }); });   另外,以下代码中,.live() 基本上等同于 .delegate().   $(document).delegate("td", "hover", function(){ $(this).toggleClass("hover"); });   变更   大量代码进行了重写, 提升了性能及修正了一些长期存在的问题。   提升性能   每次开发新的jquery版本,我们都努力去持续优化性能,以保证你能用到最高性能的javascript代码。   在Taskspeed benchmark 的测试中,1.4.2比1.4.1快1倍,比1.3.2快2倍。   主要是在下面4个方面进行了提升:   .bind() 和 .unbind().   .empty(), .remove(), 和 .html().   插入单个DOM 节点到 document.   $("body")   在测试用例中,比较多的用到了 $("body"), .bind(), .unbind()方法,因此测试结果提升比较明显。   v重写事件   event handlers 不再作为一个对象属性保存在 jQuery的内部对象里。现在是保存在一个内部的对象数组里。v 现在可以通过调用.data("events") , 将会返回一个对象包含的所有事件类型。   现在可以使用不同的数据、命名空间、事件类型绑定在同一个handler   在一个handler清除自己之后,事件handler会继续执行   不用关联数据或者命名空间到事件handler   不用再使用代理方法   事件执行的顺序在所有浏览器中得到保证,Google Chrome 中出现的对象循环逻辑问题已经得到解决. 编辑本段JQuery插件   【基础】   a)样式   很 多人会认为样式是个很复杂的东西,需要沉着冷静的心态加上非凡的审美观才能设计出赏心悦目的UI,抛开图片设计不说,其实css也就是那么些属 性:position,margin,padding,width,height,left,top,float,border,background…   UI设计的漂亮与否在很大程度上依赖于设计人员对配色的把握和整体效果的协调。   b)脚本   我们同样需要对javascript有着深刻的理解,对dom, xhr, Regex, call-apply, prototype等都应该有一定的了解。   有人会说要这些有啥用啊,对dom的操作其实通过getElementById, getElementsByTagName以及其他的API都可以轻松的完成,这话是没错,当思路确定后,思想才是重点,一段代码是精华还是糟粕很容易就 可以区出来,究其原因还是取决你自己   【实践】   jQuery开发或使用,更多的灵感是来自实践,而不是copy||paste(奉行拿来主义的同学可以离开了)。   那么在这里我会用一个简单的例子来阐述jQuery插件开发的流程,能否举一反三就看各位看官了。   【目的】   开发一个插件之前我们需要对自己的目的有一个清醒的认识,有很明确的方向感,那么此次我作为示例插件的目的,就是呈现一个用于UI的Slider – 滑动条,常年从事于或暂时专注于win32开发的同学应该比较了解。   【草图】   真正动手编码之前我们还需要有一个草图来描述自己插件的“长相”(事件驱动或API封装的可以忽略)。   很多的同学在做UI开发前往往会忙于搜集各种小图片(非精通ps或iconworkshop人士),其实漂亮的图标的确可以美化我们的UI,不过我一般的处理方式是编写易于扩展的css,前期的UI呈现尽量少使用图片,多用线条完成。   【编码】   开发jQuery UI/Effect 插件在很多时候都需要与UI交互,因此在呈现上需要提供Html tree来绘制我们的插件,最终通过js dom来输出,那么在绘制简单的dom结构的时候我会直接用js来完成,不过如果嵌套比较复杂的话,我们还是应该先用html来完成,然后转变成js输 出。   【扩展】   有的时候用户却不是那么容易满足,于是有人高呼:“我要自己设置value,为什么不提供这个功能?”。   那么这时我们就需要为用户公开一个方法,用于设置jSlider的value,首先考虑的是作为方法需要一个作用对象(jSlider),那么此时我又不 想将作用对象作为参数传入,那么我们还是将这个方法作为插件来开发,我们将方法命名为setSliderValue,开放2个参数,v(value值)和 callback(设置完成后的回调函数)。   【插件】   其实网上已经有成百上千种插件了,应该可以满足大家的需求了。   【小结】   通篇到这里就结束了,简单的介绍了一款jQuery插件的开发流程,以及开发中应该注意的细节,那么在下一篇的文章中我会向大家介绍如何打造一个通用型的 自动完成 插件。 编辑本段让Dreamweaver支持提示代码功能   要让Dreamweaver支持jQuery自动提示代码功能,方法很简单,下载一个插件—jQuery_API.mxp,以及cs4的jQuery语法提示插件 (详细步骤见参考资料 [1])。 在Dreamweaver里依次选择“命令” -> “扩展管理” -> “安装扩展” -> …,就会自动安装了。   成功后重启Dreamweaver,就大功告成了。 编辑本段引入JQuery   在head标签内加入这个 [removed][removed]   这里的src是你的jQuery库文件的位置,可以到jquery官网下载。   这样就引入了jquery,就可以使用了。在代码中,遇到$一般就表示用了jquery。为什么要说一般呢?因为除了jquery,javascript还有一个库,用的也是$符(property库)。   jquery也给出了在遇到这种情况的解决办法,所以jquery是个很强大、开放、友好的js库。   下面举例:   [removed]   $(document).ready(function(){   //write your code here   })   [removed]   上面代码中$(document).ready(function()中的$就是jquery的简写,可以用jquery代替。这个ready函数是在DOM就绪后发生,他比传统的javascript方法更合理。   jquery在选取节点方面非常强大,jquery有一系列的选择器可供使用,非常简洁、高效。   基本选择器(3种):   $("标签名"),如$("p")是选取了所有的p标签节点   $("#id名"),如$("#test")是选取了id为test的标签节点   $(".class名"),如$(".test")是选取了所有class为test的标签节点   上面的$("标签名")和$(".class名")返回的都是所有满足的节点,至于进一步筛选可以添加一些函数,如eq,gt,lt等等。    当然,jquery还有很多选择器
Re:CCNA_CCNP 思科网络认证 动态路由 EIGRP 和 OSPF 协议======================# EIGRP协议特点(CISCO产品专用独家协议) 使用Hello消息发现邻居,然后交换路由信息,使用Hello包维持邻居表 代替其它动态协议周期性更新而消耗资源。 有备用路径,当最佳路径不可用,立即使用备用路径 备用路径比动态获取新路径效率更高。 度量值默认为带宽和延迟,也可以添加负载和可靠性以及最大传输单元(MTU) rip只是hops跳数为依据,使用带宽和延时为指标更合理 还可以负载、可靠性和MTU为依据,选择最佳路径。 默认支持4条链路的不同代价的负载均衡,可以更改为最多6条 最大跳数为255(默认是100跳) rip只有15hops,所有只能够使用在小型网络中。 触发式更新路由表,即网络发生变化时,增量更新 hello包和触发式结合,消耗设置资源更低 支持路由的自动汇总。 支持大的网络,可以使用自制系统号来区别可共享路由信息的路由器集合,路由信息只可以在拥有相同自制系统号的路由器间共享。 (即一片路由和另一片路由,不计划发布沟通的情况下,可以以系统号区) 如同VLAN方式 管理距离是90 直连0静态路由1;rip协议120;EIGRP协议90(比rip优先级高) # EIGRP度量值 EIGRP度量值 带宽 延迟 可靠性 负载 最大路径和跳数 默认支持4条等价路径 最大跳数100,也可以设置成255 # EIGRP三张表 邻居关系表 拓扑表 路由表 # EIGRP专业术语 可行距离(FD)                :A到E最小开销的路径(最佳路径) 被通告距离(AD)            :A的前一个路由器,到E的开销 继任者(最佳路径)          :可行路径下一跳的路由器 可行的继任者(备用路径):被通告距离 ---------------------------------------------------------------------------------------# 介绍OSPF协议 开放最短路径优先(OSPF)是一个开放标准的路由选择协议,它被各种网络开发商所广泛使用。 即无厂家边界 # OSPF协议具有下列特性: 由区域和自治系统组成 最小化的路由更新的流量(触发式更新,平时hello包打招呼,类eigrp协议) 允许可缩放性 支持变VLSM和CIDR(五类间路由/23) 拥有不受限的跳数 允许多销售商的设备集成(开放的标准) 度量值是带宽 # OSPF术语 Router-ID(网络中的身份:取ip最大值) 网络中运行OSPF协议的路由器都要有一个唯一的标识,这就是Router-ID,并且Router-ID在网络中绝对不可以有重复。 COST(开销) OSPF协议选择最佳路径的标准是带宽,带宽越高计算出来的开销越低。到达目标网络的各个链路累计开销最低的,就是最佳路径。 链路(Link) 就是路由器上的接口,在这里,应该指运行在OSPF进程下的接口。 链路状态(Link-State) 链路状态(LSA)就是OSPF接口上的描述信息,例如接口上的IP地址,子网掩码,网络类型,Cost值等等,OSPF路由器之间交换的并不是路由表,而是链路状态(LSA)。 邻居(Neighbor) 两台或多台运行OSPF的路由器在一个公共的网络上形成的基本关系。 但是不一定交换信息 邻接(Adjacency) OSPF只有邻接状态才会交换LSA。 只有发生交换数据关系的设备间叫做邻接 邻居间选择一个交通站DR,负责邻居间交换数据--------------------------------------------------------------------------------------- # 在边界路由器通过再发布方式向内部网段传递默认路由 两个不同协议自治区:RIP 和 EIGRP 路由再发布 两个不同协议自治区:OSPF 和 EIGRP 路由再发布 两个不同协议自治区:OSPF 和 RIP 路由再发布------------------------------------------------------------------                

1,265

社区成员

发帖
与我相关
我的任务
社区描述
软件工程/管理 管理版
社区管理员
  • 研发管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧