《JavaScript实战手册》

【作者】David Sawyer McFarland 著
【译者】李强 等译

【书号】978-7-111-25867-4

【定价】89.00元

【本书中的重要内容包括】

直接从构建结构良好的JavaScript程序开始,这些程序操作HTML和CSS Web页面。
 定制代码——本书按部就班的教程允许只添加Web页面需要的功能。
 通过学习本书中的生动在线示例,你可以开发自己的Web站点的解决方案。
 避免常见的错误,明确在此过程中怎么做。
 通过jQurey库预先编写好的大量代码来节约时间和精力。
 使用简单的AJAX编程,集成来自Web服务器或Google Maps的数据。

译者序

Ajax(Asynchronous JavaScript And XML)技术的提出和应用,真正掀起了Web 2.0的革命的大潮。最初使用Ajax技术的是Google Maps、Gmail这样的新一代网站和Web应用,

如今,在Web 2.0大潮的席卷下,应用Ajax技术的网站几乎随处可见,它们正带给人们如同桌面应用程序一样的用户体验和响应。

然而,Ajax离不开客户端脚本编程。Ajax中的“J”就代表着JavaScript语言。JavaScript是Web应用程序开发的必备语言。无论是为Web页面添加交互性还是创建整个应用程序,如果没有JavaScript,今天的Web不会是现在这个样子。也正是Ajax技术使得JavaScript从一种脚本语言真正成长为有用而强大的程序设计语言。在TIOBE最新的语言排名中,JavaScript位列第11,仅次于Ruby,足见其受到开发者关注和喜爱的程度。

本书是O’Reilly的“The Missing Manual”系列中的一本。Missing Manual系列的目标是为那些没有学习手册的软件和技术填补空白,给读者提供一本权威、易学的参考手册。因此,本书的目的就是充当JavaScript的配套手册,帮助读者掌握了JavaScript语言的结构和术语等基础知识,并进一步学习如何使用高级的JavaScript工具来快速为站点添加有用的交互。

翻译本书的过程中,我们感觉到本书由如下一些鲜明的特色,值得读者在阅读的过程中关注和利用:

l  清楚而精炼,针对读者不同需求贴切地安排内容。本书介绍基础知识的内容简捷而精炼,往往通过一些短小的代码例子来清楚地说明其用法,非常易于初学者学习。针对不同读者安排的“快速熟悉”、“常见问题”、“高级用户提示”等特色板块遍布全书。同时,书中有很多“注意”和“提示”,帮助读者更高效地利用本书。附录部分还给出了深入学习JavaScript及相关知识的参考资料和图书介绍。

l  手把手地讲解。每章不仅介绍知识内容,而且配备了按部就班的动手实践教程,让读者在做中学,轻松地掌握使用JavaScript及其库开发Web应用的有用技能。

l  图示丰富而实用。本书中的图示非常丰富,大致上分为两种。一种是体现Web应用程序效果过或软件操作的界面图。我们知道,大多数Web动态效果很难通过黑白印刷的图来展现,而本书则通过一种特殊的方式来尽可能地做到并做好这一点。即图示突出显示局部变化,或者用多图来体现变化。另一种则是代码示例说明图,用图示的方法来说明代码的工作机制,以及各个部分的作用和功能。图示的用法,是本书乃至整个Missing Manual系列的一个突破。为什么这些技术图书得到众多读者尤其是初学者的亲睐,我们想,这是一个重要的原因。

l  交叉参考方便查阅。作为手册,方便速查是必需的条件之一。而本书也通过丰富的交叉参考做到了这一点。正文中用到JavaScript的其他相关知识的时候,都给出了它们在本书中的位置的参考指示,可以帮助读者快速地找到图书中的相关部分,进行知识回顾或复习。

l  对JavaScript库尤其是jQurey的介绍和应用。jQurey等库的引入和应用,使得JavaScript的编程方式发生了很大的变化。很多任务都可以通过现成的库程序来完成,程序员不必再去辛苦地编写所有的基础性的代码。而这些正深深地影响着当前Web应用开发方式。所以,作为严肃的Web开发者,必须要学习和掌握这些库。然而,你可以花一本书的价格,买两本书。因为这本书不仅介绍了JavaScript编程知识,而且帮助你以一种实践的方式来学习如何使用jQurey构建高级、炫目的Web应用。完全不必要再花钱去购买一本jQurey图书,本书介绍的用法已经足够你在玩转jQurey。

非常高兴能够有机会把这样一本好书介绍给广大读者。参加翻译本书工作的有李强、关志兴王建勇、毛立涛、闫柳青、姜巧生、沈海峰、谢扣林、乔义峰、刘查强、王义强、刘国际、杨传辉、王建华、汪明军、朱兆涛、毛付安、张勇。读者朋友在阅读本书的过程中,如果有觉得有疑问或不妥之处,可通过reejohn@sohu.com联络译者。

前言

不久以前,Web实在是一个恼人的地方。用单纯的陈旧的HTML构建的Web页面,只是显示信息,而没有其他更多的东西。人们点击一个链接,然后等待一个新Web页面的载入,这就是他所能获得的交互。

现如今,大多数Web站点几乎具有和桌面计算机程序一样的响应性,对于每次鼠标点击都迅速反应。这都得益于我们将要在本书中学习的内容,即JavaScript。

什么是JavaScript

JavaScript是一种程序设计语言,它允许我们用动画、交互性和动态的视觉效果来增强HTML的功能。

JavaScript可以通过提供即时反馈而使得Web页面更为有用。例如,一个具备JavaScript功能的购物车页面,当访问者选择要购买的一件商品的时候,可以即时显示总金额,以及税和运费。当某人试图提交一个遗漏了必需信息的Web表单的时候,JavaScript可以产生一条错误消息。

JavaScript的主要优点是其即时性。它使得页面可以立即对于某人和页面的交互的操作做出响应,例如点击一个链接、填充一个表单,或者只是在屏幕上移动鼠标等等操作。JavaScript不会遭遇到和PHP这样的服务器端编程相关的令人沮丧的延迟,而后者则依赖于Web浏览器和Web服务器之间的通信。因为JavaScript不会依赖于频繁加载和重新载入Web页面,使用它创建的Web页面给人们的感觉以及其操作都更像是桌面程序,而不像是一般的Web页面。

如果你访问Google Maps (http://maps.google.com/),将会看到JavaScript的实际应用。Google Maps允许我们查看所在城市的地图(或者很多其他的地方的地图),放大以获取街道和公车站的详细视图,或者缩小以得到如何穿越城镇、州或全国的鸟瞰图。尽管在Google之前有很多的地图站点,但它们总是要求重新载入多个Web页面(这通常是一个很慢的过程)来获得想要的信息。相反,Google Maps不需要刷新页面就能工作,它对我们的选择做出快速响应。

使用JavaScript创建的程序,既有真正简单的程序(例如弹出一个新的浏览器窗口,其中有一个Web页面),也有像Google Docs (http://docs.google.com/)这样功能完备的Web应用程序,而后者允许我们使用Web浏览器来创建幻灯片、编辑文档和创建电子表格,其感觉就像是在计算机上直接运行的一个程序一样。

简短历史介绍

JavaScript由Netscape于1995年后期发明,它几乎和Web本身一样老。尽管JavaScript在如今广受重视,它却有着颇为跌宕起伏的历史。它一度被认为是狂热爱好者的编程语言,用来添加不太有用的效果,如像证券报价器一样的一个在Web浏览器状态栏滚动的消息,或者是跟随鼠标在页面上移动的、动画的蝴蝶效果。在JavaScript的早期,很容易在网上找到数以千计的JavaScript程序(也叫做脚本),但是,很多这样的脚本通常不会在所有的Web浏览器上工作,并且有时候甚至导致浏览器崩溃。

注意

JavaScript和Java编程语言毫无关系。JavaScript最初名为LiveScript,但是,Netscape的市场营销人员确信,如果试图和当时热门的Java语言联系起来的话,JavaScript应该会得到更多的关注。

在早期,JavaScript也遭遇到两个主流浏览器Netscape Navigator和Internet Explorer不兼容的问题。由于Netscape和Microsoft都试图通过添加新的和(表面上)更好的功能来超越对方,这两个浏览器常常以不同的方式工作,这使得人们很难创建在两种浏览器中都很好地工作的JavaScript程序。

注意

在Netscape引入了JavaScript之后,Microsoft引入了jScript,这是它们自己的JavaScript版本,包含在 Internet Explorer之中。

好在这些最坏的日子就快要过去了,并且当前的浏览器如Firefox、Safari和Internet Explorer 7都将它们操作JavaScript的很多方式标准化了,这使得编写在大多数浏览器下工作的JavaScript程序容易一些了(在当前的Web浏览器中仍然有一些不兼容,因此,你需要学习一些处理跨浏览器问题的技巧。我们将在本书中学习如何克服浏览器不兼容性的问题)。

在过去的几年里,通过在Google、Yahoo和Flickr等姿态鲜明的网站上的应用,JavaScript已经获得了重生。这些站点广泛地使用JavaScript来创建交互式的Web应用程序。现在来学习JavaScript是再好不过的时机了。有了已知的充足的知识和已经编写的高质量的脚本,即便你是初学者,也可以为Web站点添加高级的交互,你完全不必要成为一名计算机科学家。

JavaScript随处可见

JavaScript并不是仅用于Web页面。它已经被证明了是如此有用的一种编程语言,如果学习了JavaScript,你可以创建Yahoo Widgets和Apple的Dashboard Widgets,为iPhone开发程序,并且在像Acrobat、Photoshop、Illustrator和Dreamweaver这些众多的Adobe程序中加入脚本编程功能。实际上,Dreamweaver已经为聪明的JavaScript程序员提供了一种方式来向程序中添加他们自己的命令。

此外,Flash的编程语言ActionScript也是基于JavaScript的,因此,如果学习了JavaScript的基础知识,你将能够为承担Flash编程项目做好充分准备。

JavaScript并不孤立

没有了Web设计的两大支柱HTML和CSS,JavaScript一筹莫展。很多程序员提到,3种语言构成了一个Web页面的三个“层”:HTML提供了结构层,以一种更有意义的方式来组织图片和文字等内容;CSS(Cascading Style Sheets,层叠样式表)提供表现层,使得HTML中的内容很好地显示;JavaScript添加行为层,给Web页面带来生气,使它能够和Web访问者交互。

换句话说,要掌握JavaScript,我们还需要很好地理解HTML和CSS。

提示

要了解HTML和CSS的完备介绍,请参阅Elisabeth Freeman和Eric Freeman编写的Head First HTML with CSS and XHTML。如果需要CSS的技巧性主题的深入介绍,请参阅David Sawyer McFarland所著的CSS: The Missing Manual(这两本书都由O'Reilly出版)。

HTML:主题结构

HTML (Hypertext Markup Language,超文本标记语言)使用叫做标签的简单命令来定义Web页面的各个部分。例如,下面的HTML代码创建了一个简单的Web页面:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">

<html>

<head>

<title>Hey, I am the title of this Web page.</title>

</head>

<body>

Hey, I am some body text on this Web page.

</body>

</html>

这个示例可能不是很令人兴奋,但是它具备了一个Web页面所需的所有基本元素。这个页面开始的几行说明了页面的文档类型以及它符合哪个标准。这个文档类型声明,简称为doctype,也将Web浏览器指向Internet上的一个文件,其中包含了该类型文件的定义。HTML还有几种不同的版本,并且对于每个版本使用不同的doctype。在这个例子中,该页面的doctype表示页面是一个HTML文档,并且使用HTML 4.01的“严格”版本。

实际上,doctype告诉Web浏览器如何显示该页面。在Internet Explorer中,doctype甚至可以影响到CSS和JavaScript如何工作。如果doctype不正确或者缺少doctype,我们可能会发现脚本有很多跨浏览器的差别而最终四处碰壁。换句话说,总是要在HTML中包含一个doctype。

当今有4种常用的HTML类型:HTML 4.01 Transitional、HTML 4.01 Strict、XHTML 1.0 Transitional和XHTML 1.0 Strict。这4种类型都很相似,只是在如何书写标签以及允许哪些标签和属性方面有些细微区别。大多数Web页面编辑程序都在你创建一个新的Web页面的时候加入了相应的doctype,但是,如果你需要每种doctype如何编写的示例,可以在www.webstandards.org/learn/reference/templates看到四种不同类型的页面的模板。

使用哪种类型的HTML并不是真的要紧。所有当前的Web浏览器都理解每种doctype,并且可以使用4种文档类型中的任何一种来显示Web页面而不会有任何问题。使用哪种doctype不会像确保页面验证(参见后面的“验证Web页面”部分)正确那么重要。

注意

XHTML曾经作为Web设计师的下一件大事宣布。尽管我们仍然发现有人认为只应该使用XHTML,但是,风向已经开始转换了。大多数浏览器厂商并不对XHTML的未来版本的发展(和复杂性)感到非常兴奋,并且,他们已经将注意力转向HTML 5。我们可以在www.digital-web.com/articles/html5_xhtml2_and_the_future_of_the_web找到更多相关信息。

HTML标签如何工作

在前面的示例中,和我们所能看到的任何Web页面的HTML代码一样,可以看到大多数的命令都成对地出现,并且包含一段文本或其他命令。尖括号之间的内容,也就是那些标签,都是告诉Web浏览器如何显示页面的指令。标签就是超文本标记语言的标记部分。

每对标签的开始标签都告诉浏览器指令从哪里开始,而结束的标签告诉指令从哪里结束。结束的标签总是在第一个尖括号符号之后包含一个斜杠。例如,标签<p>表示一段文本的开始,而</p>表示其结束。

对于功能正常的Web页面,我们至少必须包含如下的3个标签:

l  <html>标签出现在Web页面刚开始的地方(在doctype之后),并且在Web页面末尾再次出现(带有一个斜杠)。这个标签告诉Web浏览器,这个文档中包含的信息是使用HTML编写的,而不是用其他某种语言编写的。页面的所有内容,包括其他的标签,都出现在开始和结束<html>标签中。

如果把Web页面看作是一棵树,<html>标签就是它的树干。从树干伸展出来的是两个分支,分别代表任何Web页面的两个主要部分,即标题和正文。

l  Web页面的标题包围在<head>标签中,它包含了页面的标题。它还提供了可供浏览器和Web搜索引擎使用的、其他的、不可见的信息(例如,搜索关键字)。

此外,标题还可以包含Web浏览器用来显示Web页面和增加交互性的信息。例如,我们把CSS放入到文档的标题部分。文档的标题也经常包含到JavaScript程序的链接和到其他JavaScript文件的链接。

l  Web页面的正文包含在一对<body>标签中,其中包括了出现在浏览器窗口中的所有信息,包括标题、文本、图片等等。

在<body>标签内,我们通常可以看到如下的标签:

l  我们用<p>标签告诉Web浏览器一段文本开始,而用</p>表示一段文本结束。

l  <strong>标签突出显示文本。如果把某段文本包含在其相对的标签</strong>中,将会得到粗体字体。HTML代码段<strong>Warning!</strong>告诉Web浏览器以粗体显示单词 "Warning!"。

l  <a>标签或者叫做锚点标签,在Web页面中创建了一个超链接。当点击的时候,超链接可以导向Web上的任何地方。我们通过在<a>标签中放置一个Web地址,告诉浏览器该链接指向何处。例如,可以输入<a href="http://www.missingmanuals.com/">Click here!</a>。

浏览器知道,当访问者点击了"Click here!"的时候,它应该去往Missing Manual Web站点。这个标签的href部分叫做属性,而这个URL(Uniform Resource Locator,统一资源定位符或Web地址)是值。在这个例子中,http://www.missingmanuals.com是href属性的值。

快速熟悉

验证Web页面

正如本书第4页所介绍的,Web页面的doctype表示我们用来创建Web页面的HTML或XHTML的类型。规则根据类型而略有不同,例如,和HTML 4.01不同,XHTML不允许拥有一个未结束的<p>标签,并且要求所有的标签名和属性都是小写的(例如,<a>而不是<A>)。

由于每个HTML版本使用不同的规则,我们总是应该验证Web页面。

HTML验证器是确保Web页面编写正确的一个程序。它检查页面的doctype,然后分析页面中的代码看它是否符合doctype定义的规则。例如,验证器会标记出错误拼写的标签名或未结束的标签等错误。万维网联盟(World Wide Web Consortium,W3C)是负责Web上使用的众多技术的组织,它有一个免费的在线验证器,位于http://validator.w3.org。我们可以把自己的HTML代码复制并粘贴到一个Web表单,上传到一个Web页面,或者把验证器指向Web上已经存在的一个页面,验证器会分析HTML并报告该页面是否有效。如果有任何错误,验证器告诉你错误是什么以及错误发生在HTML文件的哪一行。

如果使用Firefox,可以从http://users.skynet.be/mgueury/mozilla下载HTML Validator插件。这个插件允许我们直接在Web浏览器中验证一个页面,只要打开这个页面(甚至直接位于计算机上的一个页面),验证器就会指出HTML中的错误。在Safari中也有一个类似的插件,叫做Safari Tidy,可以在http://zappatic.net/safaritidy找到。

验证HTML不只是为了保证良好的形式,它也是确保JavaScript程序正确地工作所必需的。很多JavaScript涉及到操作一个Web页面的HTML:例如,标识一个特定的表单字段,或者在特定位置放置新的HTML(例如一条错误消息)。为了让JavaScript能够访问和操作Web页面,HTML必须保持正确的工作顺序。忘了结束一个标签,多次使用同样的ID名,或者不正确地嵌套HTML标签,都可能使得JavaScript代码不能正确工作或者根本不工作。

CSS:为页面添加样式

HTML一度是需要掌握的唯一语言。我们可以构建带有彩色文本和图形的页面,并且使得单词以不同的大小、字体和颜色显示。但是如今,访问者期待从Web站点得到更多,因此,我们需要使用一种新的、更为灵活的技术,即CSS,从而给页面更高级的视觉效果。CSS是一种格式化语言,它允许我们使得文本更好看、构建复杂的页面布局以及为站点广泛添加样式。

把HTML仅仅看作构建一个Web页面的语言。它帮助我们标识出想要让世界知道的内容。像<h1>和<h2>这样的标签表示标题,并且赋予了相关的重要性:1级标题比2级标题更为重要。<p>标签表示一段基本的信息。其他的标签也提供了进一步的结构化线索:例如,<ul>标签表示一个符号列表(例如,生成一个更为智能的配方成分列表)。

另一方面,CSS为组织良好的HTML内容添加了设计才能,使得它更美丽并且更容易阅读。基本上,CSS样式只是告诉Web浏览器如何在页面上显示特定元素的一条规则。例如,我们可以创建一条CSS规则来使得所有的<h1>标签以36像素的高度显示,字体为Verdana,颜色为橙色。CSS可以做很多功能强大的事情,例如,添加边框、改变内边距,甚至控制一个页面元素的确切位置。

说到JavaScript,对页面做出的一些最有价值的改变涉及到了CSS。我们可以使用JavaScript来给一个HTML标签添加CSS样式,或者从该标签删除一个CSS样式,或者根据访问者的输入或鼠标点击来动态地改变CSS属性。例如,我们可以通过直接修改CSS的display属性来让一个页面元素显示或隐藏。要实现一个项目在屏幕上的动画,可以使用JavaScript来动态地修改CSS position属性。

样式剖析

单个样式定义的一个元素的外观是很基础的常见用法。它实际上是一条规则,告诉Web浏览器如何格式化某内容,把标题变蓝色、围绕照片绘制一个红色边框,或者创建一个150像素宽的边栏来容纳链接的列表。如果样式可以说话,它会说:“嗨,浏览器,让这个看起来像这样”。样式实际上由两个元素组成:浏览器要格式化的Web页面元素(选择器),以及实际的格式化指令(声明块)。例如,选择器可以是一个标题、一段文本、一张照片等等。声明块可以把文本变为蓝色、围绕段落添加一个红色边框,或者把照片放置到页面的中央,其可能性是无限的。

注意

技术类型通常遵从W3C的领导,并且叫做CSS样式规则。本书交叉地使用术语“样式”和“规则”。

当然,CSS样式不会用漂亮的英语来交流。它们有自己的语言。例如,要设置Web页面上所有段落的字体颜色和字体大小,应该这样编写:

p { color: red; font-size: 1.5em; }

这个样式只是说:“让所有段落的文本(以<p>标签标记的内容)显示为红色和1.5em高”(em是基于浏览器的常规文本大小的一个单位或度量)。如图I-1所示,即便像这个例子这样的的一个简单样式也包含几个元素:

l  选择器。选择器告诉浏览器要样式化页面上的哪一个或哪几个元素,例如标题、段落、图像或链接。在图I-1中,选择器(p)引用所有的<p>标签,这让Web浏览器使用这个样式的格式化指令来格式化所有的<p>标签。使用CSS所提供的范围广泛的选择器,加上一点点创新性,我们就可以实现对页面格式化的很好控制(选择器如此重要,我们将从5.4节开始详细介绍它)。

l  声明块。跟在选择器后面的代码包含了我们想要对选择器应用的所有格式化选项。这个块以一个开始花括号开头({) ,以一个结束花括号(})结束。

l  声明。在声明的开始花括号和结束花括号之间,我们添加一个或多个声明,或者格式化指令。每个声明有两个部分,一个属性和一个值,以一个分号结束。

l  属性。CSS提供了范围广泛的格式化选项,叫做属性。属性是一个单词,或者连字符连接的几个单词,表示某种样式效果。大多数属性拥有一个直白的名字,例如,font-size、margin-top和background-color。例如,background-color属性设置背景颜色(可以猜想得到)。

注意

如果需要复习有关CSS的知识,请阅读CSS: The Missing Manual。

l  值。最后,我们将通过给一个CSS属性赋值来表现自己的创新能力,例如,使得背景为蓝色、红色、紫色或黄绿色。不同的CSS属性需要特定类型的值,包括颜色(例如红色或#FF0000)、长度(例如18px、2in或5em)、URL(例如images/background.gif)或者一个特定关键字(例如top、center或bottom)等。

图I-1

样式(或规则)由两个主要部分组成:一个选择器,告诉Web浏览器要格式化什么,以及一个声明块,列出了浏览器用来样式化选择器的格式化指令

选择器          声明块

声明           声明

属性  值       属性  值

我们不需要像图I-1那样把样式写成单独一行。很多样式有多个格式化属性,因此,将它们划分为多行可以使其更容易阅读。例如,我们可能想要把选择器和开始花括号放在第一行,每个声明独占一行,结束花括号独自在最后一行,如下所示:

p {

color: red;

font-size: 1.5em;

}

缩进属性也有帮助,可以缩进一个制表符或者两个空格,从而在视觉上把选择器和声明区分开来,使得很容易搞清楚哪个是哪个。最后,在冒号和属性值之间添加一个空格是可选的,但是添加空格的话可以增加样式的可读性。实际上,可以在二者之间添加任意多个空格。例如,color:red、color: red和color: red都有效。

用于JavaScript编程的软件

要创建HTML、CSS和JavaScript组成的Web页面,我们只需要像Notepad (Windows)或Text Edit (Mac)这样的一个基本的文本编辑器就可以了。但是,在输入了数百行JavaScript代码之后,你可能想要尝试一个更适合于编写Web页面的程序。这里列出一些常用的程序,既包括免费的也包括需要掏钱购买的。

注意

有数百种工具可以帮助我们开发Web页面和编写JavaScript程序,因此,下面并不是一个完整的列表。把它们看作是当前JavaScript爱好者最棒的选择。

免费程序

除了这里列出的,还有很多免费的程序可以用来编辑Web页面和样式表。如果你仍然使用Notepad和Text Edit,不妨试试这里列出的工具。下面是你可以选择开始尝试的一些工具的列表:

l  Notepad++ (Windows, http://notepad-plus.sourceforge.net)是程序员的朋友。它可以突出显示JavaScript和HTML代码的语法,并且允许我们保存宏并为其指定快捷键,以便可以自动地插入最经常使用的代码段。

l  HTML-Kit (Windows, www.chami.com/html-kit)是一款功能强大的HTML/XHTML 编辑器,包含了很多有用的功能,例如直接在程序中预览一个Web页面(从而不必在浏览器和编辑器之间来回切换),添加HTML标签的快捷键等等。

l  CoffeeCup Free HTML Editor (Windows, www.coffeecup.com/free-editor)是商业软件CoffeeCup HTML编辑器(售价49美元)的免费版本。

l  TextWrangler (Mac, www.barebones.com/products/textwrangler)是一款免费的软件,实际上是BBEdit的配套下沿版本。BBEdit是一款用于Mac的高级的、知名的文本编辑器。TextWrangler不具备BBEdit的所有内建的HTML工具,但它确实包括语法着色(用不同的颜色突出显示标签和属性,以便很容易扫描页面并区分开各个部分),支持FTP(因此,可以把文件上传到Web服务器)等等。

商业软件

商业Web站点开发程序包括从便宜的文本编辑器到具备所有配件的、完整的Web站点构建工具。

l  EditPlus (Windows, www.editplus.com)是一款便宜的文本编辑器(30美金),包括语法着色、FTP、自动完成和其他节省录入的功能。

l  CoffeCup (Windows, www.coffeecup.com)是文本编辑器和可视化编辑器的组合(30美金)。我们可以直接编写HTML代码或者使用一个可视化界面来构建页面。

l  skEdit (Mac, www.skti.org) 是一款便宜的页面编辑器(25美金),带有FTP/SFTP支持、代码提示和其他有用的功能。

l  textMate (Mac, http://macromates.com)是Mac程序员的一款新的心爱软件。这个文本编辑器(63美金)包括很多节省JavaScript程序员的时间的功能,包括“自动匹配字符”,它会自动地插入一对标点标签的第二个字符(例如,在输入了一个开始圆括号后,该程序自动地插入一个结束圆括号)。

l  BBEdit (Mac, www.barebones.com/products/bbedit)。这是很多人喜欢的Mac文本编辑器(125美金),具有很多操作HTML、XHTML、CSS、JavaScript的工具。包括很多有用的Web构建工具和快捷方式。

l  Dreamweaver (Mac和Windows, www.macromedia.com/software/dreamweaver)是可视化的Web页面编辑器(售价399美金)。它允许我们看到页面在Web浏览器中的样子。该程序还包括一款强大的文本编辑器,可用于编写JavaScript程序;还包括优秀的CSS创建和管理工具。要全面学习如何使用这一功能强大的软件,请阅读Dreamweaver: The Missing Manual一书。

l  Expression Web Designer (Windows, www.microsoft.com)是Microsoft的最新的Web设计工具(售价299美金)。它替代了FrontPage并且包含了很多专业化的Web设计工具,包括优秀的CSS功能。

关于本书

和Microsoft Word或Dreamweaver这样的软件不同,JavaScript不是一个单独公司所开发的单独产品。JavaScript没有开发支持人员来为普通Web开发者编写一本易于阅读的手册。尽管你可以在Mozilla.org (参见 http://developer.mozilla.org/en/docs/Core_JavaScript_1.5_Reference)或Ecmascript.org (www.ecmascript.org/docs.php)这样的站点上找到很多的信息,但没有关于JavaScript编程语言的信息的权威资源。

由于没有JavaScript的手册,人们常常不知道从何处开始着手学习JavaScript。并且JavaScript的出色之处甚至常常难倒有经验的Web专业人员。本书的目的就是充当JavaScript的配套手册。在本书中,读者可以看到关于使用JavaScript来创建高度交互的Web页面的、按部就班的说明。

本书专为那些拥有一些Web页面构建经验的读者而编写。你需要熟悉HTML和CSS,才能更好地阅读和利用本书,因为JavaScript通常和HTML和CSS紧密协作来实现其魔力。本书主要的内容是为高级初学者或中级计算机用户编写的。但是,如果你是构建网页的新手,本书中名为“快速熟悉”的部分将提供你需要理解的话题的介绍性信息。相反,如果你是一名高级Web页面设计者,那么,请注意那些名为“高级用户提示”的部分。它们提供了对于有经验的计算机爱好者的更多技术提示、技巧和快捷方式。

注意

本书还定期地推荐其他的图书,这些图书介绍了超出了JavaScript的使用手册之外的更为专门的主题。有时候推荐的图书来自于O'Reilly Media的Missing Manual系列,但并不总是如此。如果有些O'Reilly图书之外的好书,我们也会告诉你。

本书介绍JavaScript的方法

JavaScript是一种真正的编程语言:它不像HTML或CSS那样工作,但是,它有自己的一套(常常是复杂的)规则。对于Web设计师来说,调整思维并开始像计算机程序员那样思考问题,这并不总是很容易的事情,并且也没有一本图书可以教给你关于JavaScript的所有知识。

本书的目标是将你变成下一个伟大的程序员。本书要帮助Web设计师熟悉JavaScript的点点滴滴,进而开始学习一些高级工具,用它们来尽可能快和容易地为Web站点添加真正有用的交互。

在本书中,我们学习了JavaScript和编程的基础知识,但是只是基础知识还不够创建令人激动的Web页面。要介绍构建高级的、可交互Web页面所需的所有JavaScript知识,400页的篇幅都是不够的。相反,本书介绍了如何使用专业的(并且免费的)JavaScript代码,从而将你从细小的、耗费时间的细节中解放出来,并能够创建出在不同浏览器中运行良好的JavaScript程序。

我们学习了JavaScript的基础知识,然后直接学习如何在一些非常高级但易于使用的JavaScript辅助程序的一点帮助下(好了,是很多帮助吧),开发具有交互性的高级页面。考虑一下这种方式:我们自己砍伐树木和量制木材,自己建造窗户、门和门框,自己贴瓷砖等等来盖一座房子。这种DIY的方法是很多JavaScript图书中常见的方法。但是,谁有那么多的时间呢?本书的方法更像是利用一些已有的构件并且使用基本的技能将它们组合起来,从而盖一座房子。最终的结果是,用零散的时间盖起了一栋漂亮而功能齐全的房屋,并且我们不必花时间来学习这个过程的每一个步骤。

即便你想要学习这个过程的每一个步骤,本书也是一个最好的起点。它介绍了其他有用和更为高级的JavaScript图书,从而我们可以在学习完本书之后继续自己的编程教育(但是只有在你愿意的情况下)。

内容梗概

本书划分为4个部分,每个部分各包含几章。

l  第一部分 JavaScript入门从非常基础的内容开始。我们将学习JavaScript的基本构建块,并且得到一些关于计算机编程的通用的、有用的提示。这部分教你如何为Web页面添加脚本、存储和操作信息,并且给程序添加智能以使它能够对不同的条件做出响应。我们还学习了如何和浏览器窗口通信,存储和读取cookie,对鼠标点击和表单提交等各种事件做出响应,以及修改Web页面的HTML。

l  第二部分,构建Web页面功能,提供了关于JavaScript实际应用的很多真实的示例。我们学习了如何创建弹出式导航栏,扩展HTML表格,以及构建一个可交互的照片集。我们通过使用添加表单验证(以使访问者不会提交遗漏信息的表单),添加一个日历挂件来更容易地选择日期,以及根据Web访问者做出的选择来改变表单选项等方法,使得表单更为有用。最后,我们还使用标签页面板、折叠面板和弹出式对话框来创建有趣的用户界面,这些界面外观很好看而且功能完备。

l  第三部分,Ajax:与Web服务器通信,介绍了凭借一己之力就使得JavaScript成为最耀眼的Web语言的一种技术。在本部分中,我们学习了如何使用JavaScript与Web服务器通信,以便页面能够接受信息并根据Web服务器提供的信息来更新自己,而不必载入一个新的Web页面。

提示

在本书的配套Web页面上,我们可以找到在自己的计算机上按部就班地安装Web服务器的说明,以便可以利用(第三部分中介绍的)漂亮的技术。参见随后的“生动示例”部分了解详细信息。

l  第四部分,除错、提示和技巧,当似乎什么也不工作的时候给你提供帮助:可能完美地编写了JavaScript程序却没有看到它做我们所预期的事情(或者情况更糟,它根本不工作)。我们将了解程序员新手最常犯的一些错误,并学习发现和修改程序中的错误的技术。此外,我们还学习了一些使得程序更为高效并使得脚本运行更快的技巧。

在本书的最后,一个附录给出了帮助你进一步学习JavaScript编程语言的参考书目列表。

生动示例

本书目标是是你在Web方面工作的更快而且更专业,那么,自然而然的,本书另一半的价值在Web上。

在阅读本书的各章的时候,你将会遇到一些生动示例的按部就班教程,我们可以自己构建这些示例,使用从www.sawmac.com/javascript/或者本书的"Missing CD"页面 www.missingmanuals.com/cds下载的原始素材。我们可能不会在躺在吊床上休闲放松的时候阅读这些按部就班的过程来学到很多东西。但是,如果花点时间在计算机上操作一次,你将会发现,这些教程让我们能够空前深入地洞察专业设计者构建Web页面的方式。

在本书的教程中,我们还将发现URL和完成的页面,以便可以把自己的工作和最终的结果进行比较。换句话说,我们不会只是看到本书中图示的JavaScript代码,还会看到Internet上实际的、能够工作的Web页面。

关于MissingManuals.com

在www.missingmanuals.com中,我们可以看到有关本书的文章、技巧和更新内容。实际上,我们欢迎并鼓励您提交你自己的更正和更新。为了使本书内容保持尽可能的及时和准确,每次我们重新印刷本书的时候,都将会确认你所提交的任何更正。我们也会在Web站点上提示这些修改,以便你可以在自己的图书上标注重要的更正(如果你愿意的话)。(请访问http://missingmanuals.com/feedback,从弹出菜单中选择图书的名字,然后点击Go按钮来看到这些修改)。

也是在反馈页面上,可以就你在阅读本书中遇到的问题得到专家的解答,可以写书评或者找到愿意和你分享JavaScript经验的人群。

在那里还可以注册我们每月免费的Email新闻组。点击左边栏中的"Sign Up for Our Newsletter"链接。可以看到在Missing Manual系列中发生了什么事情,在这里会见作者和编辑,得到免费的视频和图书样章等等。

基础知识

要使用本书,并且真正地使用计算机,需要知道一些基础知识。本书假设你已经熟悉了一些术语和概念:

l  点击。本书使用3种指示来要求你使用计算机鼠标或者触摸板。点击意味着把鼠标按键移动到屏幕上的某处,然后(不要再移动鼠标),按下并释放鼠标上的点击按钮(或者笔记本的触摸板)。右键点击意味着用鼠标右键做同样的事情。双击当然意味着快速连续地点击两次,而根本不移动鼠标光标。拖动意味着在按下按钮的同时移动光标。

提示

如果使用Mac,并且没有鼠标按钮右键,可以通过按下Control键同时点击一个鼠标按钮来做到同样的事情。

当告诉您在Mac上c-click某内容,或者在PC上Ctrl-click某内容,你可以在按下c或Ctrl按键的同时点击(这两个按钮都在Space键附近)。

l  菜单。菜单是屏幕或窗口顶部的单词:File、Edit等等。点击一个按钮就会出现一个命令列表,就好像这个命令列表已经在窗口的隐藏处写好了,我们只是将其拉下来。

l  键盘快捷方式。如果试图以一种创新的方式来录入,那么,必须手离开键盘,抓起鼠标然后使用一个菜单(例如,使用Bold命令),这对你来说太具有干扰性了。这就是为什么很多有经验的计算机行家宁愿通过某种组合键来触发菜单命令。例如,在Firefox Web浏览器中,我们可以按下Ctrl-+ (Windows)或c-+ (Mac)来使得Web页面上的文本变大(并且更易阅读)。当我们读到“按下c-B”这样的一条指令的时候,首先按下c键,然后在c按下的时候,输入B,然后释放着两个键。

l  操作系统基础知识。本书假设你知道如何打开一个程序,在Web上冲浪和下载文件。你应该知道如何使用Start菜单(Windows)和Dock或菜单(Macintosh),以及Control Panel (Windows)或System Preferences (Mac OS X)。

如果你已经掌握了这些信息,就具备了阅读本书所需的所有技术背景。

关于这些箭头

在整本书中,以及整个Missing Manual系列中,如果你看到这样的一个句子“打开System > Library > Fonts文件夹”。这只是一条较长的指令的简写方式,这条指令告诉你依次打开3个嵌套的文件夹,例如“在你的硬盘上,找到一个名为Systems的文件夹。打开它。在System目录窗口中有一个名为 Library的目录,双击它打开。在这个目录下还有一个叫做Fonts的目录。双击并打开它”。

同样,这种箭头缩写帮助我们简化了在菜单中选择命令的过程,如图I-2所示。

图I-2

在本书中,箭头表示法帮助我们简化了菜单指令。例如View > Text Size > Increase是“在View菜单下,选择Text Size,然后从出现的子菜单中选择Increase”

Safari在线图书

当你喜爱的技术图书的封面上看到一个 Safari?Books Online图标的时候,这意味着本书可以在O'Reilly Network Safari Bookshelf上在线找到。

Safari提供了比E-Book更好的一个解决方案。它是一个可视化的图书馆,使得我们可以很容易地查找成千上万的顶级技术图书,复制和粘贴代码示例,下载样章,并在需要更准确及时的信息的时候,能够快速找到答案。在http://safari.oreilly.com免费试用。

第一部分 JavaScript入门    1

第1章 编写第一个JavaScript程序   1

1.1 编程简介 1

什么是计算机程序       2

1.2 如何把JavaScript添加到页面      3

外部JavaScript文件     5

1.3 第一个JavaScript程序  7

1.4 把文本写到Web页面上       9

1.5 附件外部JavaScript文件      10

1.6 追踪错误 12

1.6.1 Firefox JavaScript控制台   13

1.6.2 显示Internet Explorer错误对话框    14

1.6.3 访问Safari错误控制台      15

第2章 JavaScript的语法    16

2.1 语句 16

2.2 命令 16

2.3 数据类型 17

2.3.1 数值     17

2.3.2 字符串  18

2.3.3 Boolean 19

2.4 变量 19

2.4.1 创建变量     20

2.4.2 使用变量     22

2.5 操作数据类型和变量    23

2.5.1 基本算术     24

2.5.2 操作的顺序  25

2.5.3 组合字符串  25

2.5.4 组合数值和字符串     26

2.5.5 修改变量中的值  27

2.6 教程:使用变量创建消息    28

2.7 教程:请求信息    30

2.8 数组 32

2.8.1 创建数组     32

2.8.2 访问数组中的项目     34

2.8.3 向数组添加项目  35

2.8.4 从数组删除项目  37

2.8.5 使用splice(  )添加和删除 38

2.9 教程:编写使用数组的页面 40

2.10 注释      42

2.10.1 何时使用注释   43

2.10.2 本书中的注释   44

第3章 为程序添加逻辑和控制  45

3.1 使程序智能地响应 45

3.1.1 条件语句基础     46

3.1.2 添加备用计划     49

3.1.3 测试多个条件     49

3.1.4 更复杂的条件     51

3.1.5 嵌套条件语句     53

3.1.6 编写条件语句的技巧  54

3.2 教程:使用条件语句    55

3.3 使用循环处理重复性任务    58

3.3.1 while循环    58

3.3.2 循环和数组  60

3.3.3 for循环 61

3.3.4 do/while循环       63

3.4 函数:把有用的代码转换为可复用的命令 64

3.4.1 小教程  66

3.4.2 给函数提供信息  67

3.4.3 从函数获取信息  69

3.4.4 防止变量冲突     70

3.5 教程:一个简单测验    72

第4章 操作字符串、数值和日期      77

4.1 快速对象介绍 78

4.2 字符串    80

4.2.1 确定字符串的长度     80

4.2.2 改变字符串的大小写  80

4.2.3 查找一个字符串:indexOf(  )技术  81

4.2.4 使用slice(  )提取字符串的一部分   83

4.3 在字符串中查找模式    84

4.3.1 创建和使用基本的正则表达式  84

4.3.2 构建一个正则表达式  85

4.3.3 分组正则表达式的部分     88

4.3.4 有用的正则表达式     89

4.3.5 匹配模式     94

4.3.6 替换文本     96

4.3.7 尝试正则表达式  97

4.4 数值 97

4.4.1 把字符串改变为数值  97

4.4.2 测试数值     99

4.4.3 舍入数值     100

4.4.4 格式化货币值     100

4.4.5 创建随机数  101

4.5 日期和时间    103

4.5.1 获取月份     103

4.5.2获取星期几   104

4.5.3 获取时间     105

4.5.4 创建当前日期之外的日期  108

4.6 教程 109

4.6.1 概览     109

4.6.2 编写函数     110

第5章 动态修改Web页面 115

5.1 修改Web页面:概览    116

5.2 理解文档对象模型 117

5.2.1 选择页面元素     118

5.2.2 给页面添加内容  122

5.2.3 再谈月球测验     123

5.2.4 DOM的问题 126

5.3 JavaScript库简介    127

初学jQuery    128

5.4 再谈选择页面元素 129

5.4.1 基本选择器  130

5.4.2 高级选择器  133

5.4.3 jQuery过滤器      135

5.4.4 理解jQuery选择 136

5.5 向页面添加内容    138

替换和删除选择    141

5.6 设置和读取标签属性    142

5.6.1 类  142

5.6.2 读取和改变CSS属性 143

5.6.3 一次改变多个CSS属性    145

5.7 读取、设置和删除HTML属性    146

5.8 创意标题 147

5.9 操作选择中的每个元素 149

5.9.1 匿名函数     150

5.9.2 this和$(this) 150

5.10 自动提取引用      152

5.10.1 概览   152

5.10.2 编程   153

第6章 动作/响应:让页面通过事件活动起来 156

6.1 什么是事件    156

6.1.1 鼠标事件     158

6.1.2 文档/窗口事件    159

6.1.3 表单事件     160

6.1.4 键盘事件     160

6.2 把函数和事件一起使用 161

6.2.1 内联事件     161

6.2.2 传统模型     162

6.2.3 现代方式     163

6.2.4 jQuery方式  164

6.3 教程:突出显示表格行 167

6.4 更多的jQuery事件概念       171

6.4.1 等待HTML载入 171

6.4.2 jQuery事件  173

6.4.3 事件对象     175

6.4.4 阻止事件的常规行为  176

6.4.5 删除事件     177

6.5 高级事件管理 178

6.6 教程:一页的FAQ       180

6.6.1 任务概览     180

6.6.2 编程     180

第7章 改进图像  184

7.1 交换图像 184

7.1.1 改变图像的src属性   184

7.1.2 预载入图像  186

7.1.3 翻滚图像     187

7.2 教程:添加翻滚图像    188

7.2.1 任务概览     189

7.2.2 编程     189

7.3 jQuery效果     192

7.3.1 基本显示和隐藏  193

7.3.2 淡入淡出元素     194

7.3.3 滑动元素     195

7.3.4 动画     195

7.4 教程:带有效果的照片集    197

7.4.1 任务概览     197

7.4.2 编程     198

7.5 使用jQuery lightBox的高级照片集    201

7.5.1 基础     202

7.5.2 定制lightBox      204

7.6 教程:lightBox照片集  207

7.7 使用Cycle实现幻灯片动画  209

7.7.1 基础     209

7.7.2 定制Cycle插件   211

7.8 教程:一个自动的幻灯片    214

第二部分 构建Web页面功能     218

第8章 改进导航  218

8.1 一些链接基础知识 218

8.1.1 用JavaScript选择链接      218

8.1.2 确定链接的目标  219

8.1.3 不要打开链接     220

8.2 在新窗口中打开外部链接    221

8.3 创建新窗口    224

窗口属性       224

8.4 在页面上的一个窗口中打开页面 228

8.4.1 定制Greybox窗口的外观  231

8.4.2 教程:在页面中打开一个页面    232

8.5 教程:生成较大链接    235

8.5.1 概览     235

8.5.2 编程     237

8.6 实现导航菜单动画 241

8.6.1 HTML   242

8.6.2 CSS       243

8.6.3 JavaScript     243

8.6.4 教程     244

第9章 扩展Web表单 247

9.1 理解表单 248

9.1.1 选择表单元素     249

9.1.2 获取和设置表单元素的值  251

9.1.3 确定按钮和选框是否选中  252

9.1.4 表单事件     253

9.2 为表单添加智能    257

9.2.1 聚焦表单的第一个字段     257

9.2.2 关闭或打开字段  258

9.2.3 隐藏和显示表单选项  260

9.3 教程:基本表单扩展    260

9.3.1 聚焦到一个字段  261

9.3.2 关闭表单字段     261

9.3.3 隐藏表单字段     265

9.4 表单验证 266

9.4.1 jQuery Validation插件 267

9.4.2 基本验证     269

9.4.3 高级验证     271

9.4.4 样式化错误消息  277

9.5 验证教程 278

9.5.1 基本验证     278

9.5.2 高级验证     280

9.5.3 验证复选框和单选按钮     283

9.5.4 格式化错误消息  286

第10章 扩展界面       287

10.1 使用折叠面板隐藏信息      287

10.1.1 定制Accordion  290

10.1.2 折叠教程   293

10.2 把信息组织到标签页面板   295

10.2.1 格式化标签页和面板       298

10.2.2 定制Tabs插件   300

10.2.3 标签页面板教程       302

10.3 工具提示      305

10.3.1 使用title属性的工具提示       306

10.3.2 使用其他Web页面的工具提示      308

10.3.3 使用隐藏内容的工具提示       309

10.3.4 控制工具提示的显示       311

10.3.5 格式化工具提示       315

10.3.6 Cluetip教程       316

10.4 创建可排序表格   321

10.4.1 样式化表格       324

10.4.2 Tablesorter教程  325

第三部分 Ajax:与Web服务器通信    327

第11章 初识Ajax       327

11.1 什么是Ajax  328

11.2 Ajax基础知识       329

11.2.1 拼图块       329

11.2.2 和Web服务器通信   331

11.3 Ajax的jQuery方式      334

11.3.1 使用load(  )函数     335

11.3.2 教程:load(  )函数  336

11.3.3 get(  )和post(  )函数      339

11.3.4 格式化发送给服务器的数据    341

11.3.5 处理来自服务器的数据    343

11.3.6 教程:使用get(  )函数   347

11.4 JSON      351

11.4.1 访问JSON数据 353

11.4.2 复杂的JSON对象    354

第12章 Ajax编程基础       357

12.1 Tabs插件       357

12.1.1 改变正在加载文本和图标       359

12.1.2 Ajax标签页教程       361

12.2 向站点添加Google地图     364

12.2.1 为地图设定位置       366

12.2.2 其他jMaps选项       367

12.2.3 添加标志和HTML提示提示框      369

12.2.4 获取驱车指示   370

12.2.5 jMaps教程  371

第四部分 除错、提示和技巧     377

第13章 除错和调试    377

13.1 常见JavaScript编程错误    377

13.1.1 没有结束符号   377

13.1.2 引号   381

13.1.3 使用保留字       382

13.1.4 条件语句中的单个等号   383

13.1.5 区分大小写       384

13.1.6 外部JavaScript文件的路径不正确 384

13.1.7 外部JavaScript文件中的不正确路径     385

13.1.8 消失的变量和函数   386

13.2 使用Firebug调试 387

13.2.1 安装并打开Firebug  387

13.2.2 用Firebug查看错误 388

13.2.3 使用console.log(  )记录脚本过程  389

13.2.4 教程:使用Firebug控制台     390

13.2.5 更强大的调试   393

13.3 调试教程      397

第14章 深入JavaScript      401

14.1 综合应用      401

使用外部JavaScript文件     401

14.2 编写更高效的JavaScript     403

14.2.1 优先使用变量   403

14.2.2 三元操作符       405

14.2.3 switch语句 406

14.2.4 高效地使用jQuery对象   409

14.3 创建快速载入的JavaScript 410

14.3.1 在Windows下使用YUI Compressor      411

14.3.2 在Mac下使用YUI Compressor      412

第五部分 附录     413

附录A  JavaScript资源      413

JavaScript实战手册(涵盖丰富的JQuery应用实例)相关推荐

  1. JavaScript和jQuery实战手册(原书第2版)

    <JavaScript和jQuery实战手册(原书第2版)> 基本信息 原书名:avaScript & jQuery: The Missing Manual,Second Edit ...

  2. Java 7并发编程实战手册

    2019独角兽企业重金招聘Python工程师标准>>> Java 7并发编程实战手册 本书是 Java 7 并发编程的实战指南,介绍了Java 7 并发API 中大部分重要而有用的机 ...

  3. 《D3.js数据可视化实战手册》——2.5 使用子选择器

    本节书摘来异步社区<D3.js数据可视化实战手册>一书中的第2章,第2.5节,作者: [加拿大]Nick Qi Zhu,更多章节内容可以访问云栖社区"异步社区"公众号查 ...

  4. 《D3.js数据可视化实战手册》—— 1.1 简介

    本节书摘来异步社区<D3.js数据可视化实战手册>一书中的第1章,第1.1节,作者: [加拿大]Nick Qi Zhu,更多章节内容可以访问云栖社区"异步社区"公众号查 ...

  5. 阿里云携手 Elastic 及社区大咖们共同打造 《Elastic Stack 实战手册》电子书

    我也是其中的一个创造者哦: <Elastic Stack 实战手册>的创作发布,源自阿里云和 Elastic 联合主办的大规模协作活动--Elasticsearch 百人大作战. 本活动集 ...

  6. 纯手写2022年最新JVM调优实战手册,看完让你精通JVM调优

    很多程序员不重视 JVM 内存调优,写出来的代码经常出现 OOM 等内存问题.而且,面试求职者中,很多求职者一旦遇到JVM 或者 JVM 调优方面的问题,往往不知如何回答,才能充分展现自己的能力. j ...

  7. 实战课【1】jQuery实现表单校验及布局

    实战课[1]jQuery实现表单校验及布局 在学习完html,css,js,mysql,jdbc,Servlet,filter,ajax,maven等web基础知识后,开始进行项目实战.此文就会记录在 ...

  8. Wireshark工具创建过滤器的方式ARP协议全面实战手册

    Wireshark工具创建过滤器的方式ARP协议全面实战手册 [实例1-3]现在要抓取目的或来源地址为192.168.5.9的封包.在图1.5中添加如下所示的条件: tcp dst port 3128 ...

  9. ARP协议全面实战手册1.1.2设置过滤器

    ARP协议全面实战手册1.1.2设置过滤器 如果使用Wireshark捕获数据包时,默认捕获所有协议的数据包.如果接收到的数据包过多时,想要查看自己想看的数据包,可能非常困难.幸运的是,Wiresha ...

最新文章

  1. python中的enumerate函数用于遍历序列中的元素以及它们的下标
  2. python一级考试题目_全国青少年软件编程(Python)等级考试试卷(一级)br测试卷-20191114123907422...
  3. 一个不错的shell 脚本教程 入门级
  4. jvm jinfo 参数_jinfo:JVM运行时配置的命令行浏览
  5. 公司邮箱发邮件的util类
  6. 快手抢占短视频第一股,增长惊人,腾讯又是大赢家!
  7. 阶段1 语言基础+高级_1-3-Java语言高级_04-集合_03 斗地主案例(单列)_1_斗地主案例的需求分析...
  8. VBA自定义方法 快捷键设置
  9. 为什么黑客都用python-终于发现为什么黑客都用python
  10. 算法分析-动态规划-01背包
  11. oracle创建默认序列号,PLS-00103:为序列号oracle创建触发器(PLS-00103: Create trigger for sequence number oracle)...
  12. libiconv_百度百科
  13. 【QT】QT字体详解
  14. 移动技术--从网页游戏谈起 1
  15. 密码学——变色龙哈希
  16. 离散-如何确定哈斯图极大极小元、最大最小元、最大最小上下界
  17. 疫情危机中看待业务韧性
  18. uniapp跨域设置
  19. 指针、堆栈(DAY 26)
  20. 堰流实验报告思考题_水力学的实验报告2篇

热门文章

  1. 手把手Excel图表美化(1)--仪表图
  2. 智能视频分析技术与被动红外技术的整合应用
  3. 【Windows C++】调用powershell上传指定目录下所有文件
  4. 研究生周报(第十九周)
  5. Android中使用shape自定义纯色图片总结
  6. 面试 - 为什么foreach中不允许对元素进行add和remove
  7. 串口打印乱码问题处理
  8. 谢国忠-高房价伤害老百姓,破坏社会稳定
  9. 设置VSCode编辑器、终端字体为微软雅黑Microsoft Yahei,字号大小为11像素
  10. vue3 路由的使用