Tip:
Highlight text to annotate it
X
>> TOMAS REIMERS:嗨,大家好。
我叫托马斯赖默斯。
>> MIKE RIZZO:我是麦克里佐。
>> TOMAS REIMERS:我们是两个CS50s变性人。
而今天我们领先的研讨会 JavaScript和CSS的Web应用程序。
如果你想跟随的 链接就在那边。
而你想要把它 在电脑上简单地?
>> 还有的链接。
这是一个小的网站,里面有链接 所有我们要成为资源
今天指着你,也有很多的 写的我们有用的信息
阅读更深入,当你回去, 和你想记住什么
我们到底说的话,是你 议论纷纷,等等。
>> MIKE RIZZO:好吧。
因此,让我们开始。
>> TOMAS REIMERS:所以,你要开始?
确定。
>> MIKE RIZZO:是啊。
因此,我们首先要开始广泛 概述关于互联网和
在设计网站时的文件类型。
虽然此演示文稿不是我们不想 进入到JavaScript的很多很多
后来,我们想用开始 只是,那种,像一只鸟的眼睛视图
一个什么样的网站是如何 想想设计
网站的开始。
>> 所以你们,在这一点 - 它 是星期五晚上 - 应该有
提交您的CS50融资 习题集。
我们希望,这是一个好味道 什么web编程即可。
但在这里我们想,善良,给 你另一种味道,也是如此。
>> TOMAS REIMERS:所以只是为了回顾一下 发生,当您在您的网址输入
您的Web浏览器,该URL获取 在电脑抬起头来。
与您的计算机的连接 到另一台计算机,
它承载该网站。
好了,当你去到google.com,你 连接到谷歌的一
计算机,其具有 文件google.com。
>> 它然后请求一个特定的文件。
所以,如果你去 -
我不知道 -
example.com / index.html或/ test.html的, 你要去问
该特定文件。
与Web服务器的打算 将它归还给您。
>> 然后,一旦你通过这个文件 -
一旦你的计算机得到的 文件 - 这将启动
建立一个网页。
所以,现在它有HTML文件, 这是有点像
网页的结构。
HTML文件也可能会参照 CSS文件,它定义了
式的网页。
>> JavaScript文件,它定义 与网页交互。
图像文件,这只是影像。
并可能链接到其他HTML文件, 然后你可以访问。
>> MIKE RIZZO:好,太好了。
所以,你们都有,也许, 精心设置你的本地主机
在你的虚拟机。
而这只是,那种,是当地 你的电脑只有主机域名
为你在你自己的IP地址。
>> 所以在这一点,那么你可以添加 它自己的网页。
我的意思是,在CS50财经,你应该有 增加了一些HTML页面,这是,
排序的,裹在PHP包装器。
但最终,你的PHP页面 被输出为HTML格式。
>> 但回想起一开始 在PSET,我们不得不设置
权限的一切,对吧?
因此,这基本上只是让我们知道 谁可以读取,写入,和可能
执行每个文件。
所以我们要做一个快速的 - 嗯?
>> TOMAS REIMERS:所以我们要 做一个快速演示。
因此,只是为了提醒你,当你 连接到谷歌的电脑 -
谁 -
并请求文件时,计算机首先 需要确保你的授权
实际查看该文件或阅读 文件,因为你不能只问
该计算机上的任何文件,对不对?
这将是一个安全隐患。
>> 因此,在我们使用的系统,如文件 这CS50家电,有三个
谁可以拥有一般人 权限的东西。
第一个是实际 表示文件所有者。
二是组 该文件属于。
我们不会把重点 太多了。
而最后一件事是,排序的,像 世界还是和其他人一样谁的
不是特定于该文件,并且不 有超过它的任何所有权。
>> 因此,如果我们有所有者,组, 然后世界。
然后,对于每个这些基团中,则 可以有三种权限之一,
OK,或多他们。
你可以有读取权限。
你可以有正确的权限。
你可以有执行权限。
>> 所以在实际的文件类型而言,读 权限是像实际阅读
该文件的内容。
右许可写作 到上述文件。
的执行权限运行 文件,当您运行一个像你这样做
您的CS50项目。
>> 所以,当我们正在考虑文件 就像当我们需要读一个HTML
文件,需要将世界 可读的,对不对?
据推测,也希望业主 能够编辑该文件。
所以店主的将需要 读取和写入权限。
他们并不真正需要执行。
>> 集团,我们要治疗 同样作为世界现在。
所以他们需要的读取权限。
但他们并不需要写 或执行权限。
而现在,如果我们回想起前 pset时,我们体会到什么是这几样
看起来像二进制,对不对?
1代表肯定。
0表示没有。
我们实际上可以翻译 此为二进制。
>> 所以在二元110将是6。
100将是4。
同样与世界。
这样的数量,你会得到的 这个权限应该是644。
>> MIKE RIZZO:如果你回想一下 当你chmoded的东西,我相信
它们中的问题得到设置 例如,你可以这样做
像CHMOD 644 然后文件名。
644那么,你现在可以直接看到 从何而来。
所以希望,使该 更加清楚一点。
>> 然后你家伙的清晰度 -
哦,是的,这是这里了。
所以,600随后也只是例子 我们放弃了这里那里的主人有
阅读和正确的权限,而组 和世界上没有任何权限
访问该文件。
>> TOMAS REIMERS:然后我们有一个快速 常见的权限列表。
这样的目录,你要 实际搭配chmod 711。
快速拨出 - 为一个目录有 可执行权限表示,能够
来打开该目录。
图片,CSS,JavaScript的HTML需求 644因为,基本上,在世界
需要读取权限。
>> 和PHP,这你们见过 虽然我们不会谈论它
严格通常chmoded与 因为它的运行许可600
所有者的权限。
至少在设备上。
>> MIKE RIZZO:所以,如果你不明确 指定哪些类型的文件
要在实际设置 达此演示文稿 -
我们有这个问题,因为 一切都没有chmoded正确 -
你会得到那种,一 Forbidden错误,该网站
实际上不具有权限 访问任何文件
你想它来访问。
当然,也可以是固定的 - 在问题设置 - 通过改变
适当的权限。
>> TOMAS REIMERS:而对于最后一个注释 当地迅速发展 - 我们
提出这个问题,但我们只是想 要重提这个话题 -
如果你问一个服务器 - 所以本地主机, 例如,COM或什么 -
你不指定特定的文件, 您的电脑会文件
要问的是index.html。
或者,如果不存在,index.php文件。
>> 凉爽。
所以,这只是一切的回顾一下, 但愿,我们已经涵盖在
部分,讲座, 到目前为止在CS50。
现在我们要开始讨论 关于具体的库。
JavaScript和CSS库 对于Web应用程序。
>> 因此,一个快速的原因,我们有 库是编程 -
有很多的问题 编程,它不断弹出
又一次,又一次,又一次。
您可能会注意到有很多网站 需要有下拉的能力
的菜单,例如,或需要的能力 有一个非常标准按钮
式,它可能不 最简单的事情。
现在,你开始得到转换成HTML,你 意识到按键实际上可以
看起来真难看,如果你 什么也不做。
>> 所以很多人都写 所谓库。
在这方面,他们是 也被称为框架。
我们将使用 2互换。
和它们是什么是他们基本上 预制件的代码 -
无论是CSS或JavaScript -
那带走大量的 组队你有编码。
>> 所以他们预先定义一组类或 预先定义一组函数
JavaScript的情况下,这 你可以调用以后。
然后你就可以,有点,得到 访问该代码,而
不必做任何事情。
该库的一个例子是CS50.H. 这是我们给你回库
在一个星期内,允许你做 这样的事情调用getInt和GetString
无需编写 自己的任何代码。
>> MIKE RIZZO:好吧。
所以在这里,就像我们必须包括 在我们的c文件的不同
图书馆,我们也应该包括在 我们的HTML文件不同的库。
例如,如果我们想包括 这里特定的JavaScript库,
也许,一个我们已经写 自己作为它的本地托管
所谓的script.js,我们只是 使用这个符号。
>> 因此,我们有脚本类型的equals JavaScript源代码的equals
JavaScript.js。
如果你回想一下你的CS50 金融问题设置,如果你在看
header.php文件中的模板文件夹, 你应该已经看到
其中的一些包括在内。
所以这第一个 - 脚本 -
是包含一个JavaScript库。
包括一个CSS库 有一点点不同。
>> 这里,代替脚本 标记你需要的链接标签。
然后,在文本的CSS型 有一点不同。
你并不总是必须包括 REL样式表。
但我认为这是,通常, 好的做法。
>> 然后最后,HREF,你 也许在你的ATAGs看到的链接
在不同的环节只是指定 在哪里可以找到该链接。
例如,如果我们想要把一个 不同的库 - 我们只能说 -
那住在styles.css的。
我们想链接在这 托管在网络上,我们会复制。
然后将其粘贴到任何 我们就在这里吧。
>> TOMAS REIMERS:好吧,希望你 你们已经很熟悉
与如何链接的CSS。
你所要做的是在 你最后的褐色集。
JavaScript中,有些人也许 有一定的经验。
你们当中有些人可能不会。
>> 所以现在,知道一个JavaScript文件 很象在CSS文件中
您可以链接到它或意识 您可以在内部包含它。
它可以让你的脚本的东西。
而我们将引导您通过 JavaScript的稍后一点。
>> 因此,使用一个库 -
一旦你已经包括了它,它的作为 简单的字面调用
功能或添加 类名给它。
我们要谈的最后一件事 有关图书馆方面 -
这更多的是一种技术说明 -
是开源许可。
所以,当你发现这些实际的库, 你可能会想到的
问题是喜欢就OK,我只是 使用别人的代码,特别是
因为这是我们非常 告诉你在这个过程中无法做到的。
>> 因此,在开源许可的情况下, 很多开发者 -
一旦他们已经写了一个库, 他们认为可能是
帮助别人 -
将它发布到网上 并给它一个牌照。
和牌基本上说,我在此 授予权限给其他
人们使用这个软件 具有下列排序
规定。
>> 我们提供了一个链接到一个很好的网站, 帮助您了解在牌照
如果你碰上他们。
常见的规定是一样的东西 欢迎您使用我的图书馆等等
只要你给我的信用。
欢迎您使用我的图书馆 只要当它打破
你不要怪我。
欢迎您使用我的图书馆这么久 因为你不使用它来赚钱
为你自己。
这是种常见的 规定。
>> 对于这个CS50最后的项目,他们 不应该是超级重要,因为
那你们使用的项目 大概是有点,有点,称为。
但是当你真正就往 世界并开始使用的库,这
可能会或可能不会,以及实施 一些比较流行的我们
将要经历的一切。
这是很好的能够理解 这些许可证,并
明白他们的意思。
和回头路。
>> MIKE RIZZO:确定。
所以,现在移动到实例 实际的CSS。
在这一点上,到目前为止,你可能 没有遇到过这一点。
但你可能已经在遇到它 你每天的生活,那里的东西
看起来单程在一个浏览器 可能看起来不一样
这样在另一个浏览器。
>> 这就是所谓的浏览器的浏览器 兼容性。
并日益它变得越来越 更大的问题,特别是作为
浏览器把越来越多的自由 实现的事情,因为他们想要的。
因此,要克服的是,这里居然是 一个伟大的图书馆称为Normalize.CSS。
>> TOMAS REIMERS:我们包括的链接。
在这一点上,它是有益的,如果 你有你的笔记本电脑在那里
看着现场。
我们正在给你给这个权利 现在仅仅是因为CS50最终
项目实际上是要 请你来实现它
同样,通过浏览器。
>> 因此,只要保持你的背部 头,这是一个奇妙库
排序的,因为它会, 标准化的东西。
在Firefox中,一些可能会显示 作为一个像素到左边。
然后Chrome浏览器可能会决定,实际上 你的意思是10个像素
到左边。
并且要规范这一点。
标准化将真正做一个真正的好 确保就业网站
看起来是一样的跨浏览器。
>> MIKE RIZZO:所以,如果我们想刚 点击链接真的很快,并显示
你是什么样子,你 可以使用下载的
巨大的下载按钮。
或者,我鼓励您阅读更多关于它 通过点击下此链接
右上角。
>> TOMAS REIMERS:如果你真的 点击阅读更多就在那里 -
点击GitHub上源 -
你会真正看到了开源 在LICENSE.md特许权存在。
你会看到这里是 非常流行的MIT许可。
同样,如果你通过文字阅读, 你就可以找到它在网站上
我们之前引用,并能 了解它,而不必阅读
通过法律术语。
>> MIKE RIZZO:好,太好了。
这就是标准化。
我们想给你 那真的很快。
哦,你有问题吗?
>> 观众:所以当你下载它,你 只要按照这些代码,他们有
在下载按钮?
>> TOMAS REIMERS:是的,所以 当你下载 -
>> MIKE RIZZO:哦,那是一个伟大的一点。
所以现在的问题是怎么办 我们实际上下载呢?
因此,如果我们点击链接,我们看到 它实际上弹出
在源代码。
因此,要做到这一点,我们可以 做的只是单击另存为。
另存为和应 打开一个文件。
然后我们可以选择保存 它作为normalize.CSS。
然后你必须在挂靠 -
>> TOMAS REIMERS:用同样的方法你 在任何其他文件链接。
而一旦你的联系起来,什么是伟大的 关于标准化是它实际上将
利用所有的辛苦照顾 本身的工作。
这意味着你不必 添加任何类。
>> 你不必做任何事情不可思议。
这将正常化,没有你 进一步做任何事情。
是的,你必须把它列入。
谷歌Chrome浏览器没有响应。
>> 只是一个快速拨出 -
我注意到我们跳入这一点。
此演示文稿的其余部分是 将是一个快速概述。
图书馆的调查。
>> 基本上,它们是什么。
他们做了什么。
他们怎么是有用的。
你会如何实现它们。
如果你想开始看着他们, 沿以下,并通过阅读
他们,我会极力鼓励。
>> 另外,欢迎你也来 开始下载它们,包括
他们一见倾心只是为了看看他们 看起来像或者他们做,如果你有什么
你的笔记本电脑在你的面前。
如果没有,欢迎您继续 听我们说话。
我们将继续谈判。
我们有时间的尽头,有希望 我们将真正进入你展示
什么一些这些库 样子。
>> MIKE RIZZO:酷。
好吧,那么现在让我们来谈谈 关于字体真棒。
>> TOMAS REIMERS:所以字体真棒是 很整洁的网站,特别是对那些
我们谁是少的艺术 才华。
无视名称字体真棒,它给 你一堆的图标,这是
非常有用的。
所以很多时候,你会实施 图标,你可能要像一个漂亮的x这样
您可以关闭一些东西。
>> 或者你可能想一些编辑按钮 用像铅笔画
每个人都有。
而当你学习这 绘制这些图标可以
非常繁琐和困难。
真棒字体 - 如果你真的 去工地 -
为您提供了很多图标下 该图标在顶部。
是啊,就在上面。
它会给你很多 图标是免费的。
>> 所以在这里你看我们有事情像 星号,酒吧,闪电,一
日历,一个错误,一本书,等等。
这可以是非常有用的。
你有这个问题的方法是你有 从字面上的CSS文件。
而你已经包含了CSS文件之后, 你可以做的是创建一个
标签叫一它satands的 与类FA图标
站立字体真棒。
然后,你想要的任何类。
>> 所以,如果我想这加一个图标 在这里广场,我想给
它的类足总杯。
然后足总杯连字符加连字符广场。
>> MIKE RIZZO:冷,确定。
>> TOMAS REIMERS:然后,最后的CSS 库,我们希望我们打通
试图保持它在极小的CSS 库,因为我们不知道的
此演示文稿的标题 是JavaScript库。
但我们认为,大家不妨 您介绍的其他库
当我们在谈论库。
>> 这是谷歌的Web字体。
什么谷歌网页字体可以让你 要做的就是添加字体到你的网站,
这是一个非常简单的方法,使 漂亮,来区分你的设置
从其他人的是,如果它有 一个漂亮的字体,或者如果它有一个很好的
收集的字体。
谷歌Web字体是不错不像其他 在这个意义上的库,这是一个
真正引导安装。
>> 所以,如果你按照链接,它的 google.com / fonts下,我相信。
如果你遵循这一点,你 可以选择你的字体。
你可以选择从左侧 厚度,倾斜,等等。
然后,一旦你选中的人, 您可以点击快速使用。
就在那里。
盒子的右下角。
>> 然后,向下滚动。
首先,他们给你的CSS,这 你需要实际链接到它。
它就在那里。
你可以复制和粘贴英寸
而关于这一个好处是 你实际上并不甚至需要
下载该文件。
>> 什么是它要做的是它会 链接到谷歌的版本吧。
所以回到什么意思。
这意味着,当一个用户 下载你的文件 -
下载你的HTML页面 - 你的HTML 页面将引用此文件。
>> 那么,你的电脑是怎么回事,看看, 哦,这是托管在google.com,而
比theirsite.com。
让我去问问谷歌该文件。
然后,它要包括 它几乎就好像它是一个
您自己的网站的一部分。
>> TOMAS REIMERS:酷。
而一旦你有这一点,那么到 它包括在你的CSS,它可以让你
实际线路。
所以,你设置属性的字体系列 等于你的字体的名称。
>> MIKE RIZZO:确定。
因此,我们刚完成的CSS。
和一些你可能会想,好吧, 我们对CS50财经一些CSS。
但CSS库是引导。
我们实际上包括引导一点点 后来下的JavaScript,因为与
自举的CSS库也来 有大量的JavaScript的
引导或Twitter - 谁做引导 -
用来管理所有的CSS。
>> TOMAS REIMERS:有没有人有任何 到目前为止,关于CSS中的一般性问题?
我们是好?
真棒。
>> MIKE RIZZO:真棒。
>> TOMAS REIMERS:所以移动 上到JavaScript。
>> MIKE RIZZO:所以我们想谈 关于jQuery的开始。
有没有人听说过的jQuery 或使用前呢?
是啊,一对夫妇?
所以,如果你只是与本地合作 JavaScript中,你会发现自己
键入长了很多选择的很多。
那么,jQuery也为它提供了 一个漂亮的包装器的JavaScript
语言,让你轻松选择 和操纵不同的元素
的文档对象模型中 网页或DOM中,我认为
你们已听说过 演讲在这一点上。
>> TOMAS REIMERS:如果你还没有听说过 它,如果你还没有看过讲座
然而,文档对象模型是 基本上事情是如何表示的。
因此,HTML有点看起来像一棵树 当你真正把它画出来。
您对上面的HTML元素。
你的头部和身体。
>> 然后,在您 拥有一切。
这就是被称为DOM -
文档对象模型。
所以这代表对象模型 该文件是一个简单的方法去思考
有关。
以及约jQuery的伟大的事情之一 是不是真的让穿越
这一点,在操作件 这令人难以置信的简单。
>> 就这么简单,事实上,大多数的 JavaScript库或者如果不是
多数,盛大大部分的人 你会看到真正需要这样的jQuery
他们可以简单地运行自己 因为如果你没有jQuery的,你
会浪费很多时间试图 弄清楚如何选择特定的
元素和如何做其他事情。
而关于jQuery的另一个伟大的事情 是它的跨浏览器兼容。
>> 所以记得当我们说, 不是所有的浏览器都实现
东西是一样的呢?
这是真实的,即使在JavaScript中。
以及约jQuery的伟大的事情之一 是,它将检测
浏览器和检测 适当的方法。
>> 所以,如果你需要选择一个元素, IE浏览器可能会说你是
应该做的这种方式。
火狐可能会说正确的 方法是这样的。
jQuery的不关心。
当你告诉了jQuery选择 元素就会弄清楚它是如何
应该在浏览器中做的 用户目前处于,然后执行
这种方式。
>> MIKE RIZZO:所以我们不要谈 jQuery的的用法一点点。
就像PHP,jQuery有一个特定的 钟爱的美元符号。
所以,你会发现,任何的jQuery -
还有,不是所有的。
你有时可以取代美元 签署与字jQuery的。
但是总体来说,只是因为它的 短,每当你看到的jQuery是
使用它会是一个美元符号。
>> 所以在这里我们只是展示一个开始 选择器在DOM中的元素。
在这里,我们有美元符号后面跟 通过开放的括号,然后报价。
并在引号内去我们的选择 对于不同的元件。
就像在CSS中,我们需要选择到 可以不同样式的元素
内的页面。
这些不同的选择翻译 正好到jQuery和JavaScript的,
在大多数情况下。
>> 所以在这里,我们有一个点富。
所以,如果你还记得的讲座, 点只是意味着这个类。
因此,我们选择元素 与类Foo。
所以,如果我去进取,不断开拓我们 JavaScript控制台这里真的很快
只是演示一下,如果我只需键入 美元符号,我们看到它的一些
函数,来了。
它只是用jQuery的定义。
>> TOMAS REIMERS:对于那些你 陌生,控制台是一个工具
在Chrome浏览器,它允许你, 基本上,在运行JavaScript
当前页面。
这一点,你会发现非常有用的,当 你实际上是在调试和你
需要被人喜欢,什么是当前 一些全局变量的值还是什么
是什么东西?
这有点像GDB除外 你实际上可以
操作页面上的元素 它在一个容易得多的方式。
还没有,基本上,检查 与你它做任何事情。
>> 而如此,GDB可能是这样,你 确定要执行的下一个步骤?
控制台的现实。
因此,作为网页的渲染和 做什么它做,
理事会的运行也沿着它。
你可以把转嫁给代码转换成 该控制台,这将
在页面上运行。
>> MIKE RIZZO:所以要进入控制台, 我想我应该简要地
提到如何做到这一点。
在那你可以有最后的问题 使用Chrome的检查项目
功能或查看页面源代码 -
而那些只是通过正确的访问 单击页面或特定的
元素和做任何检查 元素或查看页面源代码。
我们还可以访问JavaScript 控制台直接
选择检查项目。
这样,那么你只需点击控制台 在最右边。
>> 或者,你可能也不见了 到右上角,
这是此屏幕上切过的地方 它有三个横条。
和你去到的工具和 然后JavaScript控制台
在这些地方可以看到 -
至少在Windows上 -
快捷键是控制移位J.所以后来 如果我们想选择一个元素
此页面中,就像我展示 之前,我们做的美元符号开括号
然后引用。
>> 一个有趣的事情是,通常, 单引号和双引号
交换。
所以,很多人只使用单一的 引号,因为他们更快地输入
比双引号,因为你不知道 必须按住Shift键。
所以我就做了现在。
>> 所以我要选择的东西 带班。
容器,只是因为我知道这是 东西是我们的
网页现在。
和我打回车。
而且我们可以看到,它选择了它。
因此,它显示了它 返回的对象。
所以这是一个基本的选择。
如果我们想要真正操纵它, 你将不得不调用的东西
关于该选择,这 我们将在后面进入。
>> TOMAS REIMERS:所以刚才看那个 更深入的,这是没有什么不同
比我们在C中所做的函数调用 该函数在这里的名称是
一点都不奇怪。
这是美元符号。
这只是一个函数的名称。
没有什么特别的地方。
>> 我们有开括号。
那么,我们有我们的一个参数, 在这种情况下,恰好是一个字符串,
这是一个选择器,用于它。
然后,我们有我们的 闭括号。
就是这样。
>> 这并不是说完全不同。
虽然它看起来很怪异。
并可以排序的,是症结 点了很多人。
>> MIKE RIZZO:那么同样,如果我们想 要选择具有一个ID的元素,
现在我们要选择由 ID而不是类。
这将是一个类似的事情,我们 只是做了尖锐的迹象ID。
因此,我们选择在这里所有 具有ID栏中的元素。
>> TOMAS REIMERS:这延伸。
该CSS的延伸。
就像在CSS中,你可以选择所有 链接,其中有类Foo。
在这里,这是同样的事情。
>> 你可以这样做a.foo,这将选择 所有的类Foo的链接。
你可以做一个尖锐的酒吧,这将 选择与ID栏等的链接
上等等。
任何CSS选择器是一个有效的 jQuery选择器。
>> MIKE RIZZO:是啊。
好了,现在让我们进入一点点 操作,我们可以做的
我们的jQuery。
所以,jQuery有一个特定类型 符号在这里我们只是使用的
一个点结束。
你也可以认为这就像在 Ç我们如何有不同的结构。
并进入这些结构,你会 使用点来进入他们。
>> 这是一种,类似的事情。
只是现在我们在这个函数 选择器,我们可以在它上面调用。
所以在这里,第一个例子 你可以看到的是一个CSS选择器。
基本上,那是什么呢是它 适用于第一个元素的CSS这个
您选择的事情 -
你选择了这个元素 -
同的值,该值。
>> TOMAS REIMERS:这么一个简单的翻译 那将是如果jQuery的,基本上
只是把富。
然后在CSS中说, 颜色红色和关闭。
这是同样的想法。
它的选择是什么,它的完成是 所有foo的元素。
然后它的应用。
排序的,属性颜色 等于红色。
>> MIKE RIZZO:同样,我们也可以改变 什么是实际内容
示的网页的HTML,这 是真的很酷,因为这意味着你的
现在的网页可以是完全动态 并且不必是静态的
你打印出来使用PHP 在最开始
页面正在加载。
所以在这里,如果我们想改变 页面的实际的HTML,我们现在
调用的HTML功能,那么就 无论我们指定插入到
我们选择的元素。
所以在这里我们选择用元件 类Foo,然后说这是HTML
它现在的hello world。
>> TOMAS REIMERS:当你想想 什么是有用的应用
这个,这个CSS之一,第一件事, 你可以开始考虑是
来讲甚至下拉菜单。
你可以开始做的事情,比如,当 用户将鼠标悬停在顶部
一个下拉,你想 底部的一部分可见。
对不对?
>> 所以在CSS中,我们有物业 使一些可见。
诸如此类显示结肠无 将使它不可见。
显示块将使其可见。
或者即使你想去简单,你 有喜欢的东西平等的知名度
可见,能见度等于隐藏。
>> 而你可以开始实施的东西 像下拉菜单右侧
之后你通过怎样的想法得到 你能弄清楚这时候打开,
我们将通过得到很简单的。
但是,我们可以开始看到 这个应用程序。
在类似的意义上说,如果你要尝试 并实施,让我们说,一个聊天
引擎和你想一点点 当你已经讲话泡沫上来
有一个新的消息,一旦你的 新的消息,你可以做一个小
语音气泡上来,通过改变 该页面的HTML,对不对?
通过添加额外的讲话泡沫 在有多余的文字。
是吗?
>> 观众:所以,你会在这个嵌入 在有点像在HTML代码
[听不清]?
>> MIKE RIZZO:对。
是的,我们会到达那个 在一点点。
是的,这是一个类似 点点的PHP。
不完全相似。
>> 一个很好的区分,使是这 实际上是在编辑的时候,我们编辑
该网页,因为它不会是 编辑被作为实际文件
保存在服务器上,因为世界 应该没有权限
编辑您的文件。
这仅仅是编辑什么的在页面上 和什么正在显示的内
浏览器。
所以,如果你是后重新加载页面, 说,删除的东西,因为我们
看,我们可以通过remove调用做, 那个东西会再出现。
>> TOMAS REIMERS:那么一种方式来思考 这是,如果我是你的电脑和
迈克是,排序的,服务器。
这是怎么回事发生的是我要去 问迈克,嘿嘿,我可以有一个副本
这个网页?
他会给我一个副本。
>> 不,这不是原来的东西。
这只是一个副本。
然后它会像哦, 还有的JavaScript这里。
很显然,我应该编辑 页面是这样。
而且我编辑您的副本。
>> 但是,这并不影响 实际的复制。
如果我要问他了 刷新页面, -
哎,我可以有另一块干净的副本 -
他打算给我 另一块干净的副本。
然后,我会做同样的事情 像,哦,这个JS这里说
编辑这个。
而且我会继续这样做。
>> MIKE RIZZO:所以一个非常酷的事情 你可以做jQuery是
实际上添加不同类型 的动画到你的页面。
我不知道你是否见过哪里 你想一个填写表格
在网上,你不填写 在正确的事情。
因此,一个小东西滑下 在顶部和你说
没有正确地做到了这一点。
请再试一次。
然后,它甚至可能只是向上滑动。
>> 原来jQuery的内置函数 使这一切
动画真的,真的很方便。
所以有第一淡出 出功能,
你可以调用的东西。
这是一个方法来改变的CSS 以动画方式的元素。
因此,需要什么元素 你怎么称呼它淡出的。
然后,慢慢地改变了它的不透明度 直到它完全透明的。
>> TOMAS REIMERS:其他流行的一种 被滑下,这将使
事情出现滑动下来。
因此,在下拉菜单的情况下, 再次,当我们学会了如何检测
这时候已经盘旋, 你能告诉这个底部
现在部分向下滑动。
然后,它会出现 通过滑了下来。
>> MIKE RIZZO:然后,如果你只是有 考虑到某些类型的动画的
jQuery的不一定提供。
例如,让我们说的jQuery 并为您提供幻灯片
向下滑动起来。
好了,让我们说你想滑 从左侧或从东西
右边有点像CS50 主页不会每当
你去一个新的面板。
那么你可能会得 使用自己实现的
在jQuery的动画功能。
>> 所以同样,你只是动画。
然后,在其内它需要一个 不同的价值观字典
那你应该通过。
所以在这里,如果我们想要的动画 元素富使得无论其宽度
膨胀或收缩为80像素, 这取决于它目前是。
我们只是传递,作为 在它的参数。
>> 动画也有一些其他的参数 你可以通过它,例如,
动画的速度 你想给它。
要做到这一点,我只想说 很快谷歌jQuery的动画。
然后,造就了这个页面,你可以 看它有一堆不同
属性,您可以通过它。
>> 我鼓励你 - 只要你来 跨越你做的东西不
知道或者只是想了解更多的 您可以调用特定的方法
的东西 -
它只是谷歌。 jQuery是非常 有据可查的。
很多时候有很多的 例子,他们提供给你。
如果我们向下滚动 -
一路下来 -
我们可以使用,以及。
>> 同样,当一个开发人员实际上去 通过书面的麻烦
图书馆,他们通常希望 有人使用它。
因此除了将要 是一个文档。
而且文档通常可以 该项目的页面,这是上找到
为什么我们给你在原来的网站 开始的时候,哪个环节你到
项目页面,以便您可以 请参阅文档。
>> 通常情况下,在该情况下,项目的页面 的[听不清],它告诉你
类的名称。
在JavaScript的情况下,它给 你的函数的名称。
顺便说一句,如果我们向上滚动到顶部, 在功能的快速侧面说明是
每当你看到实现的功能 像这样的硬
括号在中间,该装置 即该属性是可选的。
只是抬起头来。
我已经看到了很多问题 有关。
>> 所以在这里我们可以看到, 动画需要的属性
作为一个必要的参数。
其他一切都是可选的。
侧面说明 -
你能想到这一点,排序 ,如手册页。
手册页是对C文件和 对于很多其他的事情,也是如此。
>> MIKE RIZZO:因此,我们已经学会了如何 改变不同的CSS在页面上,
制作动画,并删除添加HTML。
但真正最强大的一个 关于JavaScript的事情
尤其是jQuery的 -
它可以让你做的是应对 这种情况发生不同的元素。
举例来说,在这里我们有 一个事件处理程序。
而这仅仅意味着每当这个 事件发生时,我们处理它的
特定的方式。
>> 所以在这里,通用jQuery的事件 处理程序是准点到达。
然后,你所提供的第一件事 是什么样的事件它应该
被监听。
所以在这里,它的点击是 我们在等待。
>> TOMAS REIMERS:或者,你有 上悬停,这是一个非常流行的一种。
所以,回到我的下拉菜单的想法。
你将不得不顶一个悬停。
然后你可以改变这一点。
>> MIKE RIZZO:对。
然后,当发生这种情况时,仅有 执行此功能,我们给它
作为参数,而 它会提醒打招呼或喜。
>> TOMAS REIMERS:所以的情况下, JavaScript中,这是我们需要的地方
从C中删除自己,我们实际上可以 把函数作为参数。
这里面有很多真正 复杂的方式来做到这一点。
我们要推动的一种方式, 这是你可以定义
功能在那里。
>> 因此,当你要求一个功能 一个参数,你基本上只是
要定义函数 当场。
和你定义了一个函数的方式 在JavaScript中是你
从字面上说的功能。
然后,通常,该名称 的功能。
但我们永远不会引用 再此功能。
所以我们把它无名。
>> 然后在括号,则卷曲 括号,然后在该代码。
因此,我们明白这罐 是有点混乱。
所以,我们给你的一般形式 事件处理程序是什么样子
下面,这是对事件。
然后,你的代码里面的那个。
>> MIKE RIZZO:是否有任何 关于这个问题吗?
这可以是一个有点混乱 你第一次看到它。
>> TOMAS REIMERS:实际上,你要 打开一个文件,并告诉他们一些
jQuery的权利吗?
>> MIKE RIZZO:是啊,让我们做到这一点。
确定。
>> TOMAS REIMERS:所以现在我们 在家电。
而我们所做的就是我们已经采取了 同时建立一个index.html的自由
文件,该文件链接到 一个JavaScript文件。
而且我们可以打开 -
是的。
那么,它做了两件事。
>> 首先是它链接到 JavaScript文件。
我们会看到,在这里。
我们看到,在该头部 HTML文档,尤其是。
所以,你会看到那里, 我们基本上说的SRC,
它代表源。
这就是该URL。
>> 所以在这里你可以说我们已经 包括jQuery的。
而且我们还包括脚本。
另一种方法,包括JavaScript是 您可以包含一个内嵌的脚本
标签,因为我们有在底部的地方 说脚本类型是文本的JavaScript。
>> 所以我们说,听着,我们是 即将包括一个脚本。
并且该脚本的类型是 JavaScript中,这是一种文字。
很简单。
>> MIKE RIZZO:原来这,样的,到达 您对我们如何有问题
JavaScript的在我们的文件,因为当我们 PHP了,我们做这样的事情。
然后,有我们的PHP函数 - 让我们说做个股
一些与该 -
去那里。
但是,现在我们有脚本标记 我们给它,这实际上是
在HTML本身的一部分,因为它不是 伪造是喜欢它的HTML文件
是在PHP中,因为如果你真的去 并查看页面的源代码,
你会看到这些脚本标记在那里 与JavaScript的关联
他们说。
>> 那么,如果我们想 写一些JavaScript -
我们只能说,我们想改变身体 因为现在我没有
任何其他标记,我真的可以 编辑除了身体。
远的不说,我想 改变的CSS。
因此,我们将继续和变化 它的颜色为红色。
>> 于是我保存文件。
让我们回到我们的网页,刷新, 它会自动执行它
因为它似乎并不像它等待 在所有的,因为我们没有听
一个事件或类似的东西。
>> TOMAS REIMERS:因此,如果我们回到那个 文件特别 - 在HTML
文件 - 你将成为怎样 看到的是我们有 -
记住,这被加载时, 排序,按时间顺序。
因此,我们必须首先在头部。 它加载这两个文件。
然后,我们去的身体。
而我们看到的hello world。
因此,我们提供的hello world。
>> 然后我们有过去的事情 是我们的脚本标记。
所以它运行的脚本标记,因为它是 不告诉它要等待什么。
这就是最基本的 的方式来运行JavaScript。
>> 随着中说,你可以把脚本 在标题标签了刚
表明这一点呢?
并运行。
我们要注意到,它 并没有改变颜色。
而且这是存在的问题之一 JavaScript是一种东西是装
按时间顺序。
>> 所以在当时那个代码 正在运行,我们选择了 -
回去 -
身体标记。
body标签还不存在,因为 JavaScript是与HTML行。
因此,浏览器就像是选择身体。
有没有这样的事情呢。
所以我们可以忽略。
我们继续前进。
>> 然后我们定义一个body标签。
但永远不会被更新。
因此,当你执行脚本 标签,请确保您放置
在body标签后。
下一张幻灯片。
>> MIKE RIZZO:确定。
所以我们改变了一些东西。
但它并没有像它回应 我们都因为那种只是
只要它加载的页面做了。
而不是做这个所以现在,为什么 不,我们添加一个事件处理程序。
>> 因此,让我们做一些事情 到身体一次。
让我们说,我们这样做的 -
单击。
我们将添加一个功能。
>> TOMAS REIMERS:让我们改变 它的颜色为红了起来。
为什么不呢?
>> MIKE RIZZO:是啊,让我们改变 其“颜色红了起来。
好的。
因此,让我们重新加载页面。
OK,我们看到 -
正如所料,它不会变成红色呢。
但是,我们可以继续前进,点击它。
>> TOMAS REIMERS:而且它会变成红色。
>> MIKE RIZZO:而且它 变红预期。
>> TOMAS REIMERS:我们可以看到如何 我们可以开始建立非常基本的
互动。
我们可能想要做的其他事情是, 如果我们不想让身体
颜色红,让我们在HTML 背景颜色为红色。
只是因此它是相同的CSS。
>> 而当我们改变它,我们可以看到这款 改变非常显着的效果
整个页面。
如此反复,如果你正在实现的事情, 你可以有一个组件
其目的是要被单击。
比方说,一个Exit按钮, 整个其他成分
这是为了应对。
所以,你会去掉一个窗口 当这种情况发生。
>> MIKE RIZZO:确定。
正如一个例子 -
你没有看到这个前面 -
我就告诉你是什么样子 当我们隐藏着什么喜欢的。
所以我会继续前进,不要向上滑动。
>> TOMAS REIMERS:想换行,在一个 款型在我们这样做?
>> MIKE RIZZO:确定。
是啊,我们为什么不这样做只是让 我们可以选择它多一点。
>> TOMAS REIMERS:而且我们 给它一个类。
>> MIKE RIZZO:是啊。
好了,让我们来看看。
而是选择实际身体 现在,我就选择与一切
类你好,在这里我们 只是有一件事。
所以我们不应该 担心。
>> 所以我会刷新它。
我会继续前进,点击它。
而且,排序,做了一个奇怪的幻灯片 起来的事情,这看起来并不
有吸引力的。
一般情况下,他们看起来相当不错。
我猜,这 - 对于一些 原因 - 没有。
我就做一个淡出这样 你可以看一下这一点。
更漂亮。
>> 然后,如果我打开JavaScript的 再次安慰,我们希望看到什么
看起来,当我们淡化它。喜欢
现在,我只需要调用淡入就可以了。
和它消失。互动
>> 同样的,我们实际上可以同时传递 参数淡入或淡出,
一种是,它的速度。
因此,让我们继续前进,说,我们要 它去慢慢淡入。
所以我想它还是显得 相当快。
但它是比以前慢。
>> TOMAS REIMERS:如果你想找到 更多有关这些事情,再次,
刚去的jQuery文档, 我们已经给你了,看
通过这些。
他们记录他们的职能 令人难以置信的好。
>> MIKE RIZZO:确定。
所以我想,让我们回到这一点。
我们可以谈论我们的最后一页。
好了,我们可以引导完成。
然后我们再打开它 对一些问题。
如果你们有任何想法, 你想尝试扔了,看看
如果我们可以实现它们 JavaScript的快。
>> 所以,真的很快大约引导,这 被自动包含在
你的最后一个问题在CSS文件夹设置 实际上在链接到您的
header.php文件。
所以,你可以添加类 在引导被定义它。
并且它会自动风格 这些东西相应。
>> TOMAS REIMERS:所以引导是一个非常 由国人开发的神奇的东西
在Twitter的。
以及它是为了做的是 -
之前网站真的很难做 看起来不错,尤其是当我们有
很多常见的组件。
所以很多的按钮 网页看起来都一样。
>> 很多文本字段,可向 看起来比标准文本更好
现场你可能知道,从真 旧网站或真的不好做
网站,这只是看起来像文字 文本框没有任何形式的文本
阴影或任何种类的漂亮轮廓。
那么什么引导所做的就是它说,好, 我们有很多共同的风格。
我们为什么不做出一套共通的CSS 和一套通用的JavaScript作为
好,这可以风格原样并 能给人之类的东西下降
下拉菜单,它可以给人们 事情像模态。
>> 莫代尔是什么在弹出的页面 每当它严格说来
东西,这进一步抑制 互动,直到你
与它进行交互。
这样的事情是,你确定 要删除这东西?
你真的不能做任何事情 直到你说yes或no。
>> 花了这一切,它封装了 一起说,我们开始吧。
人们现在可以使用这个。
你可以找到它了 在getbootstrap.com。
它会自动包含在 你最后的问题集。
而你更欢迎 您的最终项目中使用它。
如果你想遵循 链接得到引导。
>> 你会在这里看到的是 引导的CSS网站。
你会看到引导。
如果你向下滚动,你会看到 如何下载它,如何
安装它,等等。
>> MIKE RIZZO:你也可以, 有趣的是,自定义,以
是什么样的主题 你想要的。
我知道这件事情我做我的 当我把类声明为final项目
是自定义。
不同版本的自举的那个 有不同的配色方案,
一些不同的形状 不同的事情。
所以,我鼓励你与玩。
这是一种有趣的事情。
>> TOMAS REIMERS:在顶部寻找 再次,这是非常相似的字体
网站真棒!
很多文献将启动 当你已经让自己看起来类似
看够了吧。
所以在这里,我们有CSS 此组件。
你会看到它是如何 可以风格的东西。
所以,如果你点击的表,例如, 可以瞬间让一个
表很简单地增加 在类表中给它。
>> 同样的事情按钮。
如果你简单地添加类BTN和BTN 违约或干训局主,你可以
得到这些按钮的任何一个 这些预制的样式。
然后,如果你正在寻找 东西不是简单的更复杂
改型什么瓦特已经有了,在上 在顶部我们JavaScript的标签
有一堆组件。
>> 所以在这里我们有转变,情态动词, 下拉菜单,选项卡和工具提示。
工具提示是在你什么弹出 鼠标,当你在徘徊的东西。
Popovers,警报,按钮,可折叠 手风琴是什么
它们通常被称为。
旋转木马,而翻转 通过像图像。
>> 因此,这些都是组件 的引导。
我会鼓励你 高度去看待他们。
有一个JavaScript组件 和CSS的组件。
随意使用它们作为你的意志。
我们不会去过多放进去 因为我们觉得文档
真的做得很好。
,是的。
你有任何关于什么问题吗?
>> MIKE RIZZO:那么作为一个真快 侧,此网页的设计,
我们赶紧把在一起 此演示文稿
实际使用进行引导。
正如你可以看到,当我们点击这些 不同的标签,我们从来没有真正
离开这个当前的index.html页面。
所以,我们是不同的div 在此index.html的。
然后,每当我们点击不同 标签,它只是改变
其中一个人的表现。
>> 因此,相应地定位它们, 改变网页的HTML,以便
当前选项卡标记为活动状态,因此 它似乎不同,看起来
真的很好。
>> TOMAS REIMERS:所以这是所有做 没有我们编写几乎所有的CSS。
我们还看到一个头在顶部, 其中的颜色是由我们。
但实际把它放在 在网页的顶部,并使得
它滚动了引导。
然后即使对另一个库 - 这 是不是一个大家谈论但一
你可以谷歌,如果你想要的。
这就是所谓的prettify.js。
它将语法高亮代码 你同时使用CSS和JavaScript。
>> 我们要谈的最后一件事 之前我们释放你出去到
世界看库弄清楚 如何使用它们,以及,希望
阅读文档,找到你 需要的是如何找到库。
因此,第一个是我们只是 将推动谷歌。
去谷歌。
>> 这是字面上我们做什么,当我们 需要做的事情是我们谷歌。
是否有一个JavaScript库, 让我来操纵时间的
有用的方式?
所以,如果我知道有一些用户在创建 这里一个帐户,并且这是
当前的时间,我该怎么计算 与该差异,而不必
计算它自己?
所以,这其实是一个常见的事, 时间的JavaScript库。
在这里,我们Moment.js- - 最流行的一种。
>> 如果我们需要一个库来操纵 像颜色,以便能够
生成一串随机颜色 -
可能的话,以产生一个 风格什么的 -
我们可以在Google上搜索类似 色彩的JavaScript库。
我敢肯定,我们会弹出一个带有 一千其中之一。
欢迎您阅读它们。
>> 所以大多数事情 - 当你发现他们 - 上的所述一个将要被托管
网站的主机代码。
他们是一些流行的。
最流行的,由 到目前为止,是github.com。
如果你去GitHub上,它实际上 其中标准化被主持。
所以,如果你想回到那一个。
让他们知道。
>> MIKE RIZZO:这就是真正在那里 这个托管也一样,如果你注意到了。
>> TOMAS REIMERS:是啊。
所以,如果你去到正常化 并转到GitHub上。
分别是什么?
>> MIKE RIZZO:那小猫咪的事情 是GitHub的象征。
>> TOMAS REIMERS:哦。
所以GitHub上使用一种称为方法 Git来存储代码。
是你不知道那是什么或 它吓唬你,这很好。
你不必知道Git是 因为GitHub上有一个下载按钮
在右下角。
>> 其他有用的事情 GitHub的是大多数的产品
将有一个读我。
如果它们不具有网站,该 读我将谈论如何
安装它,你如何使用它,它是什么 确实,等等,等等,等等。
我们已经基本上被 走你渡过难关。
>> MIKE RIZZO:互联网狭路相逢。
>> TOMAS REIMERS:这很好。
我们希望最后的两件事情 谈谈 -
我们已经讨论过的Git -
是故障排除。
而这其中是不是相关 最终产物,因为它是
当你离开50。
而当你碰上的产品 实施库或实施
自己的项目,你会 有问题或你
要去找问题。
>> 同样,谷歌它。
这是字面上我们做什么。
这会听起来很傻。
但是,从字面上看,我们google一下。
再次,第一件事情之一 你通常会遇到的
stackoverflow.com,这是一个美妙的 问题和答案的景象。
>> 这是美妙的,因为两者可以 张贴问题,并寻找
答案也是因为 它已经拥有了大量的
预填充内容在那里。
所以,当你谷歌编程通常 在第一个问题
夫妇打你,你可能已经运行 把它在你的习题集。
>> 然后,最后实在简单的东西 是jsFiddle中,这是 - 今天我们已经
已经做了很多工作,与 JavaScript的HTML的CSS。
jsFiddle中是一个Web应用程序,它基本上 可以让你把你的HTML,你的
JavaScript的左下角,并 你的CSS右上角。
然后,它可以创建一个快速渲染 它,看看它是如何进行交互。
这是非常有用的,当人们试图 做一个概念证明像
这是你会如何 做一个下拉菜单。
也许一个快速揭开或什么的。
>> MIKE RIZZO:那么让我们去 前进,点击这里。
快速提示 -
然而,我们才 这样做的点击。
原来JCorey韩国也有一个内置 在单击事件处理程序,它
使用只是因为它的数字你 要想做很多事情
当你想点击的东西。
>> 同样地,它也有一个悬停。
但要获得的全部范围 这些,看看jQuery的
文档和做到这一点。
我做了一件愚蠢的在这里。
>> TOMAS REIMERS:所以我有一个非常快速的 节目就在这里,它说
在点击按钮。
然后我们有一个for循环。
对于i小于404。
它只是将弹出 这些警报消息。
>> MIKE RIZZO:什么是 代码404在HTML中主张?
有谁还记得吗?
没有找到,正确。
Chrome浏览器也添加了这个整齐 在那里你可以事儿 -
>> TOMAS REIMERS:因为人喜欢 迈克开始了这个做了很多,
恼人的用户,这使得 你看到的信息。
>> MIKE RIZZO:是啊。
>> TOMAS REIMERS:难道我们有什么问题 关于这一点,关于JavaScript
库,发现库,或 什么是Web开发的外观
像在现实世界中?
我们正在运行起来反对时间。
所以,我不知道我们要去 有时间来实现
除非它的真快。
我们是否良好?
>> MIKE RIZZO:任何你们想 看到一样,真快2
分钟或更少?
>> TOMAS REIMERS:任何 我们可以澄清?
如何在写 -
>> 观众:[听不清]?
>> MIKE RIZZO:是的,所以佼佼者 -
>> TOMAS REIMERS:您可以打 控制-U的网站上。
>> MIKE RIZZO:哦,我不知道。
>> TOMAS REIMERS:我想,是的。
控制-U。是啊。
>> MIKE RIZZO:哦,所以这是 对网站代码。
但是,如果你真的想下载我们 文件和一切,它托管
在github.com
>> TOMAS REIMERS:削减我的名字 -
托马斯赖默斯 - 斜线 CS50连字符研讨会。
>> MIKE RIZZO:你也可以 发现那里的一切。
>> TOMAS REIMERS:这是GitHub上 看起来,顺便说一句。
如此反复,当你看到一个开放源码 项目,通常情况下,他们会读
我在那里,你可以阅读。
如果你回去,你会发现, 你有下载的zip,这将
允许您下载源 代码,以包括
产品在你自己的事。
>> MIKE RIZZO:是啊,如果我们只要按一下 在index.html的真的很快 -
>> TOMAS REIMERS:你会看到这里的 源代码为我们的网站。
>> MIKE RIZZO:另外,我忘了右推 与之前的大表吧
包括,但也有一个表 我们包括chmods的
只为你的清晰度。
但是,如果我们滚动一路下跌至 底部,我们实际上并没有做的很
很多使用JavaScript 东西都与此有关。
这是专门从一切 否则,我们有。
>> 所以,谢谢你们的光临 和听力。
我们希望这是真的很有帮助。
如果您有相关的任何JavaScript 疑问或只是想谈谈
还有什么像什么等凉的东西 你可以用JavaScript做的,我们很乐意
和你谈谈。
>> TOMAS REIMERS:如果你有一个问题 关于你的项目,如果这个可以
相关的,我们可能会坚持围绕 这后一点点。
但除此之外,有 一个美好的周末。
>> MIKE RIZZO:是的,享受。
看到你们。
>> TOMAS REIMERS:再见。