服务热线:13616026886

技术文档 欢迎使用技术文档,我们为你提供从新手到专业开发者的所有资源,你也可以通过它日益精进

位置:首页 > 技术文档 > 专题栏目 > WEB2.0新技术 > 查看文档

javascript,ajax web服务客户端语言

  最近,javascript的热点集中体现在ajax (asynchronous javascript and xml)之中的j,但是作为一种脚本语言,它已经流行了好几年了。这种脚本语言诞生自netscape公司web浏览器的"livescript",它处于浏览器的环境中并控制着浏览器的显示。

  最近,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工具集和定制的用户接口组件不断出现。其中一些是商用的而另一些是开源的。这个领域变化太快,我很难提供什么建议。

扫描关注微信公众号