Dojo最佳实践

传统 Web 应用程序可以非常好的支持浏览器的书签收藏以及前进后退按钮。而在基于 Ajax 的 Web 应用中,页面的内容刷新往往是通过异步请求的方式动态局部刷新,而不会重新请求一个页面,因而页面对应的 URL 并不会变化,前进后退按钮也不会起任何作用。这样就导致在这类 Ajax 应用中无法通过书签来记录特定的视图。本文将首先介绍通用的基于超链接锚点的可书签化的 Ajax 应用的编程模式,然后以该编程模式的分析与设计为基础并结合实例来说明如何应用 Dojo 提供的 Dojo.back 技术来实现可书签化的 Ajax 应用。最后还会介绍下 Dojo1.4 中提供的新的 Dojo.hash 技术对可书签化 Ajax 应用的支持。通过阅读本文读者能够了解基于超链接锚点的编程模式如何来设计可书签化的 Ajax 应用,并能通过 Dojo 提供的 Dojo.back 技术或者是 Dojo.hash 技术来实现可书签化的 Ajax 应用。

可书签化的 Ajax 应用的挑战

Ajax 技术给 Web 用户带来全新的使用体验同时,也给 Web 开发人员带来了各种各样的挑战。对于浏览器书签收藏以及前进后退按钮的支持,便是其一。

对于传统的 Web 应用而言,对于支持浏览器的书签收藏以及签名后退按钮是很自然的事情,开发人员并不需要做额外的工作。每个 Web 页面都有一个唯一的 URL,书签收藏的 URL 便对应相应的页面,而用户在不同页面之间浏览时便形成一个历史记录队列,队列中每一项对应一个页面 (URL), 浏览器通过记录这个历史队列来提供前进后退按钮功能。

但在基于 Ajax 的 Web 应用中 , 情况却有所不一样。很多时候页面视图的转换是通过异步请求动态地局部刷新页面实现的,并没有重新请求一个新页面,因而页面视图对应的 URL 也不会变化,也不会形成上面情况所说的历史记录。现在的浏览器还是以传统的 Web 应用的方式来支持书签收藏及前进后退按钮。对于新兴的 Ajax Web 应用,浏览器在这方面的支持并不好。这就导致了浏览器的书签收藏,前进后退按钮功能对于 Ajax Web 应用失去了意义。

图 1. 传统 Web 应用与 Ajax Web 应用的差异

那是不是我们在现有的浏览器中只能放弃书签收藏以及前进后退功能呢?显然这样是很难让人接受的,让本来是给用户带来使用体验提升的 Ajax 技术失去一项很好的用户体验。幸好我们还有办法。接下来将介绍一种基于超链接锚点的技术来实现 Ajax Web 应用的浏览器书签收藏及前进后退按钮支持。为简单起见,我们把支持浏览器书签收藏及前进后退功能的 Ajax 应用称作可书签化的 Ajax 应用。

时间: 2024-08-08 07:17:06

Dojo最佳实践的相关文章

Dojo最佳实践-如何防止浏览器内存泄漏

对于浏览器端,尤其是 Internet Explorer 的内存泄漏问题及解决方法,已经有很深入和广泛的讨论.而本文将更多的讲解作为一个 Dojo 开发人员,如何正确使用 Dojo 的相关技术,遵循 Dojo 的编程模式来避免浏览器的内存泄露问题. Ajax 应用新的挑战 Ajax 技术已经被广泛的应用,其给 Web 用户带来全新的使用体验同时,也给 Web 开发人员带来了各种各样新的挑战.Ajax 应用中浏览器端内存泄露问题便是其中之一.作为一名 Web 前端开发人员,如果某天系统测试人员给您

使用Dojo的Ajax应用开发进阶教程,第8部分: Dijit开发最佳实践

Dijit 组件(widget)是 Dojo 提供的图形用户界面组件库.它提供了 Ajax 应用开发中会用到的常用组件,可以帮助开发人员快速的构建 Ajax 应用.本文并不会介绍 Dojo 默认提供的组件,而是侧重于介绍 Dijit 组件的编程模型和最佳实践,其目的是帮助开发人员更好的开发自己的 Dijit 组件.下面首先对 Dijit 做概要介绍. Dijit 概述 Dijit 组件的存在是 Dojo 框架区别于其它 JavaScript 框架的一个重要特性.在桌面应用开发中,开发人员大量使用

ajax返回多个值:5个Ajax最佳实践

导读:通过对5个最佳实践的学习,开发人员可将其应用到日常的Asynchronous JavaScript + XML( Ajax )开发工作中.文章包括了数据格式.错误处理.以及一些采用Ajax的Rich Internet Applications(RIAs)开发工具.掌握这些最佳实践,有助于开发人员编写更加高效且健壮的Ajax代码.本文所介绍的5个最佳实践,可以应用到Web应用程序Ajax开发工作中:一.最小化调用二.让数据变小三.预加载组件四.轻松实现错误处理五.使用现有工具这些最佳实践,有

经典网络迁移VPC最佳实践

摘要:阿里云起步于经典网络,但已经全面转向VPC.专有网络VPC以其在安全.成本和网络功能方面的优势,正受到越来越多用户的欢迎.在9月6日技术直播中,阿里云高级产品专家谭礼铨(李泉)为大家分享了经典网络迁移VPC最佳实践,本次分享介绍三种将ECS从经典网络迁移至VPC网络的途径,并阐述三种类型的迁移分别适合怎样的客户需求和场景. 直播回顾视频地址:https://yq.aliyun.com/webinar/play/287 9月21日,2017阿里云网络技术高峰论坛将独家线上直播,欢迎预约:ht

DMS前后端技术揭秘及最佳实践

不同于一般的存储和计算产品,云上DMS上属于操作类产品,目的是为用户提供更高更强的数据库访问能力,减少成本以提高效率.本文中,来自阿里巴巴数据库事业部的钟隐分享<DMS前后端技术揭秘及最佳实践>,介绍云上DMS,即数据库管理服务的整体应用和实践. DMS最佳实践 云上DMS从2013年年底上线,从最初仅支持MySQL基本功能,已覆盖了多种RDBMS.NoSQL及部分分析型数据库在内的13种数据源,同时在多种数据库中逐步提供了传统数据库软件所不具有的专业功能,时间有限,我们仅列举4个不同角度的最

PostgreSQL 助力企业打开时空之门 - 阿里云(RDS、HybridDB) for PostgreSQL最佳实践

标签 PostgreSQL , Greenplum , 时间 , 空间 , 对象 , 多维透视 , 多维分析 背景 时空数据无处不在,未来空间数据的占比会越来越高,在TP与AP场景的需求也会越来越旺盛. 选址.网格运营 空间数据自动聚集分析:时间+多边形圈人:驻留时间分析:舆情分析:... 室内定位 3D坐标:相对坐标系:+以上:运营活动效果分析报表: 科研 太空探索.测绘.气象.地震预测.溯源 无人驾驶 点云:动态路径规划: 空间调度(菜鸟.饿了么.滴滴.高德.快递...) 实时位置更新:多边

python编码最佳实践之总结

该文章转自阿里巴巴技术协会(ATA) 作者:空溟    相信用python的同学不少,本人也一直对python情有独钟,毫无疑问python作为一门解释性动态语言没有那些编译型语言高效,但是python简洁.易读以及可扩展性等特性使得它大受青睐.      工作中很多同事都在用python,但往往很少有人关注它的性能和惯用法,一般都是现学现用,毕竟python不是我们的主要语言,我们一般只是使用它来做一些系统管理的工作.但是我们为什么不做的更好呢?python zen中有这样一句:There s

PgSQL · 最佳实践 · 双十一数据运营平台订单Feed数据洪流实时分析方案

摘要 2017年的双十一又一次刷新了记录,交易创建峰值32.5万笔/秒.支付峰值25.6万笔/秒.而这样的交易和支付等记录,都会形成实时订单Feed数据流,汇入数据运营平台的主动服务系统中去. 数据运营平台的主动服务,根据这些合并后的数据,实时的进行分析,进行实时的舆情展示,实时的找出需要主动服务的对象等,实现一个智能化的服务运营平台. 通过阿里云RDS PostgreSQL和HybridDB for PGSQL实时分析方案: - 承受住了几十万笔/s的写入吞吐并做数据清洗,是交易的数倍 - 实

使用Flash Lite将Flash动画移植到移动电话的最佳实践

flash动画 去年 11 月我参加了在新奥尔良举行的 Macromedia MAX 大会,当我回到家时,我感到精疲力尽.我了解到很多关于 Macromedia 在集成 Flash 技术到移动设备方面的进展,这种集成能够带给移动用户丰富而且具有吸引力的体验,并且与浏览器上的体验同样令人印象深刻和可个性化.我第一次在移动电话上看到了真正令人印象深刻的内容,这些内容给电话本身也添彩不少.在大会上,Macromedia 还公布了第一届 Flash Lite 内容大赛. 在回家的路上,我开始考虑我们 S