JavaScript基础教程(一)

08月 22nd, 2008

来源::(美)内格里诺,(美)史密斯 作者: 发布时间:2007-11-25

javascript基础教程:javascript基础

  • 尽管名字中有java,但是javascript和java几乎没有什么共同点。java是一种全功能的编程语言,是由sun公司开发和推广的。java是c和c++编程语言之后的又一种主流语言,程序员可以使用它创建完整的应用程序和控制消费电子设备。与其他语言不同,java宣称具有跨平台兼容性;也就是说,程序员应该能够编写出可以在所有种类的机器上运行的java程序,无论机器运行的是windows、mac os x还是任何风格的unix。但实际上,java不总是能够实现这个梦想,因为sun和微软公司在这种语言的发展方向方面有很大的分歧。微软公司首先试图以自己的方式将java集成到windows中(sun认为,这种方式使java在windows上以一种方式工作,而在其他机器上以另一种方式工作,从而破坏了java的跨平台兼容性);随后,微软公司从windows中完全去除了sun的java,而创建了自己的类java语言:c#。经过两公司之间的一轮诉讼之后,sun占据了上风,现在可以在windows(或linux)上安装sun的最新java版本(http://www.java.com/getjava/)。mac os x操作系统在安装时会附带java。

    除了单独的应用程序之外,java主要用于在客户端(client side,即用户的浏览器中)创建applet,applet是一种通过因特网下载并在web浏览器中运行的小程序。因为java具有跨平台性质,这些applet应该能够在任何支持java的浏览器中以相同的方式运行。在近几年,我们看到许多java applet被macromedia flash动画替代了,因为一般来说macromedia flash动画比java applet更容易创建。

    使用<object> html标签将java applet嵌入网页,还要提供指定applet的附加信息。当浏览器看到<object>标签时,它会从服务器下载java applet,然后applet就会在这个标签中指定的屏幕区域中运行(图1-1)。

    图1-1 这个java applet显示一种西洋跳棋游戏

    要想了解关于java的更多信息,我们建议阅读java之父gosling等撰写的the javatm programming language, fourth edition

    1.3 javascript的起源

    既然javascript与java无关,那么为什么它们的名称如此相似呢?这是计算机行业最烦人的恶习之一:为了获得市场营销方面的成功,而不顾及产品实质。

    当netscape在它的navigator web浏览器中添加了一些基本脚本功能时,它最初将这种脚本语言称为livescript。与此同时,java开始大行其道,它被认为是计算行业中下一项伟大的革新。当netscape在navigator 2中支持运行java applet时,它也将livescript改名为javascript,希望以此借用java的声势。尽管javascript和java是非常不同的编程语言,但这一事实并没有阻止netscape采用这种市场营销手段,从那时候开始,我们这些技术作家只好不厌其烦地解释javascript和java是不同的东西。当然,我们靠这挣了不少钱,从这个角度来说,我们可能应该感谢这些市场营销专家。

    当微软公司看到javascript在web开发人员中流行起来时,它意识到必须在ie中添加一些脚本功能。它原本可以采用javascript,但是与通常情况一样,微软公司又自行其事,建立了自己的脚本语言,这种语言非常像javascript,但又不完全相同。javascript的微软版本称为jscript。

    1.4 javascript可以做什么

    用javascript可以做许多事情,使网页更具交互性,给站点的用户提供更好、更令人兴奋的体验。javascript使你可以创建活跃的用户界面,当用户在页面间导航时向他们提供反馈。例如,你可能在一些站点上见过在鼠标指针停留时突出显示的按钮。这是用javascript实现的,使用了一种称为翻转器(rollover)的技术(图1-2)。

    图1-2 翻转器是一个会在鼠标指针停留时改变的图像

    可以使用javascript确保用户在表单中输入有效的信息,这可以节省你的业务时间和开支。如果表单需要进行计算,那么可以在用户机器上的javascript中完成,而不需要任何服务器端处理。你应该知道一种区分程序的方式:在用户机器上运行的程序称为客户端(client-side)程序;在服务器上运行的程序(包括后面要讨论的cgi)称为服务器端(server-side)程序。

    可以使用javascript根据用户的操作即时创建定制的html页面。假设你正在运行一个旅行指南站点,用户点击夏威夷作为旅游目的地。你可以在一个新窗口中显示最新的夏威夷旅游指南。javascript可以控制浏览器,所以你可以打开新窗口、显示警告框以及在浏览器窗口的状态栏中显示定制的消息。javascript有一套日期和时间特性,可以生成时钟、日历和时间戳文档。

    javascript还可以处理表单、设置cookie、即时构建html页面以及创建基于web的应用程序。

    1.5 javascript不能做什么

    javascript是一种客户端(client-side)语言;也就是说,设计它的目的是在用户的机器上执行任务,而不是在服务器上。因此,javascript有一些固有的限制,这些限制主要出于安全原因:

    q javascript不允许读写客户机器上的文件。这是有好处的,因为你肯定不希望网页能够读取自己硬盘上的文件,或者能够将病毒写入硬盘,或者能够操作你计算机上的文件。唯一的例外是,javascript可以写到浏览器的cookie文件,但是也有一些限制(关于cookie的更多信息,请参见第10章)。

    q javascript不允许写服务器机器上的文件。尽管写服务器上的文件在许多方面是很方便的(比如存储页面点击数或用户填写的表单数据),但是javascript不允许这么做。相反,需要用服务器上的一个程序处理和存储这些数据。这个程序可以是用perl或php等语言编写的cgi或java程序。

    q javascript不能关闭不是由它自己打开的窗口。这是为了避免一个站点关闭其他任何站点的窗口,从而独占浏览器。

    q javascript不能从来自另一个服务器的已经打开的网页中读取信息。换句话说,网页不能读取已经打开的其他窗口中的信息,因此无法探察访问这个站点的冲浪者还在访问哪些其他站点。

    (阅读次数: ) 上一篇:在父窗口中关闭子窗口的方法(window方法的使用) 下一篇:javascript基础教程(二)

    标签:, ,

    相关日志


This entry was posted on 星期五, 08月 22nd, 2008 at 11:38 am and is filed under c语言教程. You can follow any responses to this entry through the RSS 2.0 feed. You can leave a response, or trackback from your own site.

Leave a Reply