最近,JavaScript的热点集中体现在Ajax (asynchronous JavaScript and XML)之中的J,但是作为一种脚本语言,它已经流行了好几年了。这种脚本语言诞生自Netscape公司Web浏览器的”LiveScript”,它处于浏览器的环境中并控制着浏览器的显示。在Netscape公司加入了Java applet功能后,一些市场专家决定把LiveScript更名为JavaScript。结果,由于二者在语法上非常接近,导致了好多年的混淆。
在与Netscape浏览器竞争的时候,Microsoft发明了自己的脚本语言,称为Jscript。它是……
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
最近,JavaScript的热点集中体现在Ajax (asynchronous JavaScript and XML)之中的J,但是作为一种脚本语言,它已经流行了好几年了。这种脚本语言诞生自Netscape公司Web浏览器的"LiveScript",它处于浏览器的环境中并控制着浏览器的显示。在Netscape公司加入了Java applet功能后,一些市场专家决定把LiveScript更名为JavaScript。结果,由于二者在语法上非常接近,导致了好多年的混淆。
在与Netscape浏览器竞争的时候,Microsoft发明了自己的脚本语言,称为Jscript。它是造成开发人员一直到今天都不能在浏览器之间兼容的根源。第一个技术标准被称为ECMA-262,原本是想提供一个通用的API。正规的说,我们应该把JavaScript称为ECMAScript,不过从来都没有用过。Ecma International是一个标准化组织,从前被成为European Computer Manufacturers Association(欧洲计算机制造商协会)。
作为创建丰富用户体验的技术,JavaScript比起其它的技术,例如Flash、ActiveX和Java applets等,都有很多的优势。因为JavaScript可以连接到所有组成Web页面的元件,而其自身的发展也从所有技术中收益,例如已经演变成创建现代Web浏览器的CSS。
文档对象模型和XHTML
文档对象模型又称为DOM,它使JavaScript可以定位、改变内容以及展示HTML页面的所有元素。可惜,早期的浏览器发展并没有一个DOM标准,所以每个厂商都有自己的DOM终端。W3C官方说明书中的"Level 1"和"Level 2" DOM推荐书都被现代浏览器所实现,使得Ajax的发展成为可能。XHTML是对HTML的一个简单细化,它通过强制XML语法使得使用HTML标签具有更大程度的预描述性。
级联样式表
CSS的核心思想就是把表示层的控制与HTML元素内容分离开来。当被正确应用后,CSS提供了站点中所有页面展示的一致性、使得编辑更加简单、同时也减低了传送带宽。“级联”原则使通用的风格被特定目的的风格所覆盖。JavaScript能够直接操纵控制CSS表示的DOM元件。尽管有CSS的官方W3C推荐书,但是对于DOM的浏览器兼容性并非100%。
事件与异步需求
JavaScript的一个关键特性就是在对事件的响应中执行代码。例如,当用户的鼠标经过时,按钮等HTML元素外观要发生改变。因为有一个onmouseover()函数被指定到这个按钮。这种情况下,所有的动作对于浏览器就是本地的。
JavaScript异步获得Web服务或其它数据的关键工具就是XMLHttpRequest。JavaScript在自身的执行线程中给出这样的一个请求,因此当请求对象在等待一个响应时,所有一般浏览器事件处理都可以使用。程序员必须使用一个函数来自动地在不同的端点处理请求时调用。最终,要么得到一个错误信息,要么得到完整的响应。
如果服务器以XML文档的方式发送文本,请求会返回一个DOM对象,从这个对象中可以用处理HTML的JavaScript方法来抽取数据。然后,当这个数据被接受或者在被需要的时候持有时,它可以被HTML页面中现有的文本所取代。
编写JavaScript
作为一种脚本语言,JavaScript能够被浏览器拥有的翻译器执行。尽管比可执行的编译代码慢,但它也是Ajax应用程序的优点。因为程序可以被汇编成多种源代码。Ajax使得你可以把JavaScript数据唯一地与。标准库代码和标准CSS风格样式一样,能够被Web浏览器缓存,用于降低带宽。
Ajax的潜在问题
在过去那种为单个Web网页而做的JavaScript编程和Ajax编程之间有一个很重要的区别。在很多人的Ajax应用程序编程中,一个单独的Web网页可以拥有可扩展的JavaScript代码和对象集合用于当HTML数据被载入和动态展示时的扩展阶段。这与过去那种新Web网页需要新代码和频繁对象载入的使用模式非常不同。尽管JavaScript从被丢弃的对象中恢复内存,但编写不好的代码还是有可能持有对象引用而造成“内存泄露”。这种错误不会在短期的页面中造成问题,但对于具有长生命周期的页面来说就会有问题。
出于安全原因,JavaScript通常被限制从宿主发出请求来提供Web页面。因此,如果你想从各种Web服务中连接资源,你就必须好好设计系统使得服务器发出请求并延迟发送到JavaScript客户端的数据。
另一个潜在的问题是搜索引擎的索引。因为通过Ajax与用户交互而动态产生的内容不能被搜索引擎机器人看到。
工具
你不应该在没有浏览器工具来尝试Ajax。因为浏览器工具可以让你检查HTML页面的DOM表示。Firefox浏览器很理想,因为它有一个菜单项就是“DOM检查器”。该DOM检查器能让你浏览页面的层次结构,包括JavaScript和CSS元素。此外,还有很多Firefox插件可以用来调试JavaScript。
每当一种新的技术获得公众和产业界的青睐时,就会出现很多满足需求的供应商。很多连接了JavaScript库的Ajax工具集和定制的用户接口组件不断出现。其中一些是商用的而另一些是开源的。这个领域变化太快,我很难提供什么建议。
相关推荐
-
SAP收购CallidusCloud 与Salesforce竞争
一直被称为后台办公巨头的SAP现在似乎也想在前台办公大展拳脚。 最新的迹象是SAP收购CallidusClou […]
-
AWS MEAN堆栈+JavaScript=快速搭建应用
开发人员在构建Web应用时有许多选择。市面上有无数的框架和语言可选,而像AWS这样的云平台可以方便地部署和扩展应用程序。
-
JDK 8u40更新:新增功能抢先看
俗话说长江后浪推前浪,一代新人换旧人,Java更新版本交替,也是这样一个道理。甲骨文又给Java添加了哪些新功能。
-
移动浏览器到云:JavaScript地位正在扩张
不难发现人们非常喜欢在前端开发中使用JavaScript。但是,令我们惊讶的是后端开发也如此青睐JavaScript,促进了基于云和基于数据中心的托管应用的发展。