Ajax改造,第1部分:使用Ajax和jQuery改进现有站点

Ajax 技术改变了大型商业 Web 应用程序的外观,但是许多较小的 Web 站点都不具备足够的资源重新构建完整的用户界面(UI)。Ajax 的一些新特性能够解决实际中的界面问题并改善用户体验。本文将展示如何使用简单的模式窗口消除弹出窗口和导航死角。通过应用渐进增强(progressive enhancement)这一理念,能够保证这些增强的 UI 特性不会损害站点的可访问性,并且严格遵守 Web 标准。

本文假设您已经牢固掌握超文本标记语言(Hypertext Markup Language,HTML)和级联样式表(Cascading Style Sheet,CSS),基本了解 JavaScript 编程和 Ajax。示例应用程序仅使用客户端代码构建;本文演示的技术适用于任何服务器端应用程序框架。要运行示例站点,您至少需要在本地主机上运行一个基本的 Web 服务器。此外,您也可以仅跟随源代码并在我的 Web 服务器上查看运行中的示例站点(参见 参考资料 中的链接)。

概念介绍:使用 Ajax 改进您的站点

引导用户跟随特定路径 — 即,从产品搜索到付款购买 — 这种需求与 Web 本身的历史一样久。它一直都充满着风险:让用户迷失方向。您的导航路径越长、越复杂,用户经历的内容就越多。您需要为用户提供足够的信息,以防止他们在导航过程中失去兴趣。

在 Web 1.0 世界,购物站点通过构造一条流畅的路径(从搜索和结果到选择和购买)流线化用户体验。当购买路径提供的信息无法满足用户需求时,他们需要通过导航找到提供更多信息的产品细节或比较页面。这种方法存在的问题是,它们使用户离开了购买路径,增加了用户放弃购买的机会。而且还难以维护,因为您的导航逻辑必须存储与用户如何到达此死角相关的信息。

弹出窗口似乎提供了一个解决方案。通过弹出窗口提供补充信息,主窗口中直接的分布路径不会受到干扰。然而,不幸的是,弹出窗口容易使人混淆和反感。它们可能比上面的导航弯路更容易维护,但是它们很可能使用户退出您希望其完成的购买流程。

幸运的是,开源 JavaScript 库提供了一种简单方式,可以彻底摆脱导航弯路和弹出窗口。本文将演示如何使用 Ajax 和 Dynamic HTML (DHTML) 技术在工具提示、lightbox 和其他模式窗口中呈现补充信息。由于这些元素可以动态地插入任何页面,它们能够保持从主页到购买的快速、分步路径。

应用程序介绍:Customize Me Now

本文中的示例应用程序主要针对电子商务。我已经构造了一个虚构的购物应用程序 Customize Me Now,允许用户定制和购买一组不同的产品:批萨、旅行包或有价证券。当然,在实际中,这些产品类别绝不会出现在同一个站点上。但是,将它们放在一起可以演示许多站点面对的复杂、真实的导航难题。

本文首先提供一个 Web 1.0 版的 Customize Me Now,然后将其改进为 Web 2.0 版,当您了解到补充信息只是通过一个 Ajax 调用提供时,就能想象到导航路径有多么的流畅。此处涉及的技术适合于任何需要保持简单性并能引导用户的流程。配置产品、做一个调查、注册一些服务,或者只是完成一个注册表单 — 所有这些流程都可以使用 Ajax 实现流线化。

技术介绍:Ajax、工具提示、模式窗口和 lightbox

现在,也许不再需要介绍 Ajax 了:在 Web 开发领域到处都是它身影。这些年来,聪明的编程人员一直使用 JavaScript 代码逐步更新 Web 页面,而不再与服务器往返通信。但仅仅是因为 xmlHttpRequest 对象的采用 — 最初是一个 Windows Internet Explorer 扩展,但现在支持许多不同的浏览器 — 才使 Ajax 流行起来的。无论何时,只要您看到一个与桌面应用程序非常相似的 Web 应用程序,那么它很可能采用了 Ajax。本文无意讨论 Ajax 编程的基础知识,但是您将使用到许多使用 Ajax 技术的开源库。

Ajax UI 通常使用工具提示、lightbox 和模式窗口。它们都是指一个浏览器视区(viewport)的弹出屏幕,而不是在一个独立的窗口中运行。工具提示(Tooltips)通常是一些提供上下文内容的小型窗口,将鼠标悬停在一个触发器元素上就会显示。模式窗口(Modal windows)通常比较大,而且通过一个单击事件触发。Lightbox 是一种特殊的模式窗口,它通过半透明的重叠将窗口的原始内容和模式内容分隔开。任何一种这类容器都可以填充各种内容:使用 DHTML 技术隐藏的内联内容;通过 Ajax 调用从服务器拉取的新内容;或者拉入 iframe 中的完整的独立文档。流行的 DVD 租赁服务 Netflix 提供了一个关于这些界面元素的出色示例。

时间: 2024-11-02 07:09:29

Ajax改造,第1部分:使用Ajax和jQuery改进现有站点的相关文章

Ajax改造,第2部分:使用jQuery、Ajax、工具提示和lightbox改进现有站点

Ajax 技术改变了大型商业 Web 应用程序的外观,但是许多较小的 Web 站点都不拥有重新构建整个用户界面(UI)的资源.Ajax 的一些新特性能够解决实际中的界面问题并改善用户体验.通过本系列文章,您可以了解如何使用开源客户端库让您的用户界面变得更为时尚.本文将展示如何使用简单的 lightbox 和工具提示技术消除弹出窗口和导航死角.在实现的过程中坚持渐进增强(progressive enhancement)原理,确保增强后的 UI 特性不损害站点的可访问性,确保站点严格遵守 Web 标

Ajax改造,第4部分:用jQuery和Ajax表单改造现有站点

Ajax 技术改变了大型商业 Web 应用程序的外观,但是许多较小的 Web 站点都不具备重新构建整个用户界面(UI)的资源.Ajax 的一些新特性能够解决实际中的界面问题并改善用户体验.通过本系列文章,您可以了解如何使用开源的客户端库让您的用户界面变得更为时尚.本文将展示如何使用 Ajax 技术将一个多步结帐过程从一系列表单转变成一个单一屏幕的界面.我们将采用渐进增强方法,从而确保所有用户代理仍然能够访问您的站点. 关于本文 本文将逐步引导您使用 Ajax 技术改进一个 Web 1.0 购物站

Ajax改造,第3部分:用jQuery、Ajax选项卡和照片carousel改进现有的站点

Ajax 技术已经改变了大型商用 Web 应用程序的面貌,但是许多小型 Web 站点不具备重新构建整个用户界面所需的资源.新特性应该能够解决现实的界面问题并改进用户体验,以此证明它们的价值.本系列讲解如何用开放源码的客户端库逐步改进用户界面.在本期中,学习如何使用 DHTML 和 Ajax 把缓慢.混乱.烦人的产品细节页面改造成快速优雅的页面.我们将采用渐进式改进方法,从而确保所有用户代理仍然能够访问您的站点. 关于本文 本文讲解用 Ajax 技术改进一个 Web 1.0 购物站点的步骤.可以

如何用c#获取别的网站的数据,他的数据使用ajax获取的,如何模拟ajax获取一样的数据?

问题描述 如何用c#获取别的网站的数据,他的数据使用ajax获取的,如何模拟ajax获取一样的数据? 如何用c#获取别的网站的数据,他的数据使用ajax获取的,如何模拟ajax获取一样的数据? 解决方案 参考这个:http://blog.csdn.net/htsnoopy/article/details/7094224使用C#的HttpWebRequest模拟登陆网站 解决方案二: 你可以分析下, 他的ajax请求地址, 是不是传和它一样的参数去就会返回数据. 如果不是, 你只能模拟登陆网站.

对jquery的ajax进行二次封装以及ajax缓存代理组件:AjaxCache详解_jquery

虽然jquery的较新的api已经很好用了, 但是在实际工作还是有做二次封装的必要,好处有:1,二次封装后的API更加简洁,更符合个人的使用习惯:2,可以对ajax操作做一些统一处理,比如追加随机数或其它参数.同时在工作中,我们还会发现,有一些ajax请求的数据,对实时性要求不高,即使我们把第一次请求到的这些数据缓存起来,然后当相同请求再次发起时直接拿之前缓存的数据返回也不会对相关功能有影响,通过这种手工的缓存控制,减少了ajax请求,多多少少也能帮助我们提高网页的性能.本文介绍我自己关于这两方

ajax入门教程之XMLHttpRequest与$.ajax使用说明

对于Ajax,最核心的一个对象是XMLHttpRequest,所有的Ajax操作都离不开对这个对象的操作. 创建XMLHttpRequest对象 对于IE浏览器:  代码如下 复制代码 xmlHttp = new ActiveXObject('Microsoft.XMLHTTP'); 对于其他浏览器:  代码如下 复制代码 xmlHttp = new XMLHttpRequest(); 不同的浏览器对javascript中的XMLHttpRequest对象的支持是不一样的,所以需要根据情况做一下

jQuery实现ajax的叠加和停止(终止ajax请求)_jquery

jQuery实现ajax的叠加和停止的关键代码如下所示: <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>jQuery中终止Ajax请求</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"

使用Jquery+Ajax+Json如何实现分页显示附JAVA+JQuery实现异步分页_AJAX相关

先给大家展示下运行效果图:  1.后台action产生json数据. List blackList = blackService.getBlackInfoList(mobileNum, gatewayid, startDate, endDate); int totalRows = blackList.size(); StringBuffer sb = new StringBuffer(); sb.append("{\"totalCount\":\""+to

使用Jquery+Ajax+Json如何实现分页显示附JAVA+JQuery实现异步分页

先给大家展示下运行效果图: 1.后台action产生json数据. List blackList = blackService.getBlackInfoList(mobileNum, gatewayid, startDate, endDate); int totalRows = blackList.size(); StringBuffer sb = new StringBuffer(); sb.append("{\"totalCount\":\""+tot