|
马上注册,享用更多功能!灵感论坛,推动创造力的社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
在本章开始的时候,我介绍了Web 1.0的世界,但在创建Web 1.1之前不久,开发了诸如Java,JavaScript,JScript之类的浏览器增强功能(微软的JavaScript的轻微变体)和ActiveX。在服务器端,使用诸如Perl(替代PHP语言)和服务器端脚本(动态插入一个文件的内容或者一个文件的输出)之类的脚本语言在通用网关接口(CGI)系统调用另一个)。
一旦尘埃落定,三项主要技术就站在头顶和肩膀上方。尽管Perl仍然是一种广受欢迎的脚本语言,但PHP的简单性和与MySQL数据库程序的内置链接使其获得了超过两倍的用户数。而JavaScript已经成为动态操作CSS(层叠样式表)的等式的重要部分,现在承担了处理Ajax过程的客户端的更加强大的任务。在Ajax下(在使用JavaScript中描述),网页执行数据处理并在后台向Web服务器发送请求 - Web用户不知道这是否正在进行。
毫无疑问,PHP和MySQL的共生本质有助于推动它们向前发展,但首先吸引开发者的是什么?简单的答案必须是您可以轻松使用这些技术在网站上快速创建动态元素。 MySQL是一个快速且功能强大且易于使用的数据库系统,它提供网站可能需要的任何信息,以便为浏览器查找和提供数据。当PHP与MySQL结盟并存储这些数据时,您将拥有开发社交网站所需的基本部分以及Web 2.0的开端。
而且,当您将JavaScript和CSS也融入其中时,您将拥有构建高度动态互动网站的秘诀。
使用PHP
使用PHP,在网页中嵌入动态活动非常简单。当您为.php扩展名提供页面时,他们可以立即访问脚本语言。从开发人员的角度来看,你所要做的就是编写如下的代码:
<?php
echo "Hello World. Today is ".date("l").". ";
?>
How are you?
开头<?php告诉Web服务器允许PHP程序解释所有以下代码直到?>命令。除此之外,所有内容都以直接HTML格式发送给客户端。所以,文本“你好吗?”只是输出到浏览器;在PHP标签中,内置的日期函数根据服务器的系统时间显示当前的星期几。
两部分的最终输出如下所示:
Hello World. Today is Wednesday. How are you?
PHP是一种灵活的语言,有些人更喜欢将PHP构造直接放置在PHP代码旁边,如下所示:
Hello World. Today is <?php echo date("l"); ?>. How are you?
还有其他格式化和输出信息的方式,我将在PHP的章节中解释。重点在于,使用PHP,Web开发人员拥有脚本语言,尽管速度不如使用C语言或类似语言编译代码的速度快,但它也可以无缝集成HTML代码。
注意
如果您打算在本书中输入PHP示例以与我一起工作,则必须记住在前面添加<?php和?>,以确保PHP解释器处理它们。为了实现这一点,您可能希望准备一个名为example.php的文件,并使用这些标签。
使用PHP,您可以无限制地控制Web服务器。无论您是需要即时修改HTML,处理信用卡,将用户详细信息添加到数据库,还是从第三方网站获取信息,都可以在HTML本身驻留的相同PHP文件中完成所有操作。
使用MySQL
当然,除非您有办法跟踪用户在使用您的网站时所做的更改,否则动态更改HTML输出的意义不大。在网络的早期,许多网站使用“平面”文本文件来存储用户名和密码等数据。但是,如果文件没有被正确锁定以防止来自多个同时访问的损坏,则此方法可能会导致问题。另外,一个平面文件在变得难以管理之前只能得到如此之大 - 更不用说在任何合理的时间内尝试合并文件和执行复杂搜索的难度。
这就是具有结构化查询的关系数据库变得至关重要的地方。 MySQL可以自由使用并安装在大量的互联网Web服务器上,随时随地升级。它是一个强大且速度极快的数据库管理系统,它使用类似英语的命令。
MySQL结构的最高级别是一个数据库,您可以在其中拥有一个或多个包含数据的表。例如,假设您正在处理一个名为users的表格,在这个表格中您已经创建了姓氏,名字和电子邮件的列,现在您希望添加另一个用户。您可能使用的一个命令是:
INSERT INTO users VALUES('Smith', 'John', 'jsmith@mysite.com');
当然,如前所述,您将发布其他命令来创建数据库和表并设置所有正确的字段,但此处的INSERT命令显示向数据库添加新数据的过程是多么简单。 INSERT命令是SQL(它代表结构化查询语言)的一个例子,它是在20世纪70年代早期设计的语言,让人联想到最古老的编程语言之一COBOL。但是,它非常适合数据库查询,这就是为什么它始终在使用中的原因。
查找数据同样很容易。假设您有一个用户的电子邮件地址,您需要查找该人的姓名。要做到这一点,你可以发出一个MySQL查询,例如:
SELECT surname,firstname FROM users WHERE email='jsmith@mysite.com';
然后,MySQL将返回Smith,John和任何其他可能与数据库中该电子邮件地址相关联的名称对。
正如你所期望的那样,你可以用MySQL做的不仅仅是简单的INSERT和SELECT命令。例如,您可以根据不同的标准连接多个表,以各种不同的顺序请求结果,只知道正在搜索的字符串的一部分时进行部分匹配,仅返回第n个结果,还有更多。
使用PHP,您可以将所有这些调用直接发送到MySQL,而无需自己运行MySQL程序或使用其命令行界面。这意味着您可以将结果保存在数组中进行处理,并执行多次查找,每次查找都依赖于从早期返回的结果,并向下钻取您需要的数据项。
正如你稍后会看到的,为了获得更多的功能,MySQL中还内置了额外的功能,你可以调用它来实现常用操作和额外的速度。
使用JavaScript
本书中描述的最古老的核心技术JavaScript是为了使脚本能够访问HTML文档的所有元素而创建的。换句话说,它为动态用户交互提供了一种手段,例如检查输入表单中的电子邮件地址有效性,显示诸如“您是否真的这么意思?”等提示(尽管它不能依赖于安全性,应该始终在Web服务器上执行)。
结合CSS(请参阅以下部分),JavaScript是动态网页背后的力量,而不是在服务器返回新页面时发生变化。
但是,由于不同浏览器设计者选择实现它的方式之间存在一些主要差异,因此JavaScript的使用也可能非常棘手。这主要是因为一些制造商试图以牺牲与竞争对手的兼容性为代价来增加功能到浏览器中。
值得庆幸的是,开发人员现在大多已经意识到他们已经意识到他们的产品之间需要完全兼容,所以Web开发人员不必编写多重代码。但仍有数以百万计的传统浏览器将在未来很多年内使用。幸运的是,有不兼容问题的解决方案,本书后面我们将介绍一些技术,使您能够安全地忽略这些差异。
现在,让我们快速浏览一下如何使用基本的JavaScript,并被所有浏览器接受:
<script type="text/javascript">
document.write("Hello World. Today is " + Date() );
</script>
该代码片段告诉Web浏览器将脚本标记内的所有内容解释为JavaScript,然后浏览器通过编写文本“Hello World”来解释它。今天是“通过使用JavaScript函数Date将当前文档和日期连接起来。结果将如下所示:
Hello World. Today is Thu Jan 01 2015 01:23:45
注意
值得一提的是,除非您需要指定JavaScript的精确版本,否则通常可以省略type =“text / javascript”,只需使用<script>即可开始解释JavaScript。
如前所述,JavaScript最初是为了对HTML文档中的各种元素提供动态控制而开发的,这仍然是它的主要用途。但越来越多的JavaScript被用于Ajax。这是在后台访问Web服务器的过程的术语。 (它最初的意思是“异步JavaScript和XML”,但这个词已经过时了。)
Ajax是现在被称为Web 2.0(由本书出版公司的创始人兼首席执行官Tim O'Reilly推广的术语)背后的主要过程,其中网页开始类似于独立程序,因为它们不必须全部重新加载。相反,快速的Ajax调用可以引入并更新网页上的单个元素,例如更改社交网站上的照片,或者用点击的按钮替换问题的答案。这个主题在第17章中有详细介绍。
使用CSS
随着近年来CSS3标准的出现,CSS现在提供了以前仅由JavaScript支持的动态交互级别。例如,您不仅可以设置任何HTML元素的样式来更改其尺寸,颜色,边框,间距等,现在您还可以使用几行CSS为网页添加动画转换和转换。
使用CSS可以很简单,只需在网页的头部插入<style>和</ style>标签之间的几条规则即可:
<style>
p
{
text-align:justify;
font-family:Helvetica;
}
</style>
这些规则将改变<p>标签的默认对齐方式,以使其中包含的段落完全对齐并使用Helvetica字体。
正如你将在第18章中学到的那样,你可以通过很多不同的方式来设计CSS规则,你也可以直接将它们包含在标签中,或者将一组规则保存到一个外部文件中以分别加载。这种灵活性使您不仅可以精确设计HTML的样式,您还将看到它如何提供内置的悬停功能,以便在鼠标指针经过它们时为对象设置动画。您还将学习如何从JavaScript以及HTML访问元素的所有CSS属性。
借助Safari,您可以了解最佳学习方式。无限制地访问视频,实时在线培训,学习路径,书籍,互动教程等。
|
|