精通Grails: 用JSON和Ajax实现异步Grails - 编程入门网
精通Grails: 用JSON和Ajax实现异步Grails时间:2011-08-02 IBM Scott Davis本文讨论 Grails 对于其互补技术 JSON 和 Ajax 的支持。在前几期的 精通 Grails 系列文章中, JSON 和 Ajax 都扮演支援者的角色,而这一次,它们担任主角。您将使用内置的 Prototype 库和 Grails <formRemote> 标记发出一个 Ajax 请求。您还将看到一些关于提供本地 JSON 和通过 Web 动态获得 JSON 的例子。 为了进行演示,您将组建一个旅行计划页面,在该页面中,用户可以输入出发地机场和目的地机场。 当机场显示在一个 Google Map 上时,用户可通过一个链接搜索目的地机场附近的宾馆。图 1 显示了这 个页面: 图 1. 旅行计划页面 您可以在 1 个 GSP 文件和 3 个控制器中,用大约 150 行代码实现所有这些功能。 Ajax 和 JSON 简史 在 20 世纪 90 年代中期 Web 首次流行起来的时候,浏览器只允许粗粒度的 HTTP 请求。单击一个超级 链接或一个表单提交按钮,就会导致整个页面被清除,并且被新的结果替代。这对于以页面为中心的导航 来说本无大碍,但是页面上单个的组件却无法独立地更新。 1999 年,Microsoft® 在 Internet Explorer 5.0 中引入了 2005 年,Google Maps 终于发布。对异步 HTTP 请求的广泛使用使得它与当时的其他 Web 映射站点 形成鲜明的对比。在浏览 Google Map 时,不再是单击一下,然后等待整个页面重新装载,而是可以用鼠 标顺畅地滚动地图。Jesse James Garrett 在一个 blog 帖子中使用简单易记的 Ajax 描述在 Google Maps 中使用的各种技术,从那以后这个名称就一直沿用下来(参见 参考资料 )。参考资料)。(在本文的后面您将使用 Yahoo! 的 JSON Web 服务) 。 近年来,Ajax 已成为用于 “Web 2.0” 应用程序的一个涵盖性术语,而不是一组特定的技术。请求 通常是异步的,并且以 JavaScript 发出,但是响应并非总是 XML。在基于浏览器的应用程序的开发中, XML 缺乏本地的、易于使用的 JavaScript 解析器。当然,也可以使用 JavaScript DOM API 解析 XML, 但是对初学者而言这并不容易。因此,Ajax Web 服务常常返回纯文本、HTML 片段或 JSON 格式的结果。 2006 年 7 月,Douglas Crockford 将描述 JSON 的 RFC 4627 提交到 Internet Engineering Task Force(IETF)。当年年末,Yahoo! 和 Google 等主要服务提供商将 JSON 输出作为 XML 的替代品(请 参阅 精通Grails: 用JSON和Ajax实现异步Grails(2)时间:2011-08-02 IBM Scott DavisJSON 的优点 在 Web 开发方面,JSON 与 XML 相比主要有两个优点。首先,它更加简洁。JSON 对象是一系列以逗 号分隔的 name:value 对,最外面有一对花括号。相反,XML 则使用重复的开始和结束标记包装数据值。 因此,与相应的 JSON 相比,这样便产生了两倍的元数据开销,所以 Crockford 将 JSON 趣称为 “XML 的无脂替代品”(请参阅 参考资料)。当处理 Web 开发的 “细管道” 时,每次减少一些字节都可以带 来实在的性能好处。 清单 1 显示了 JSON 和 XML 如何组织相同的信息: 清单 1. 比较 JSON 和 XML {"city":"Denver", "state":"CO", "country":"US"}<result> < |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |