阿不

潜水

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

    这两天忙偷闲,想比较深入地研究一下Ajax相关的技术,以便以后更好地做开发,毕竟单单使用Atlas的UpdatePanel,封装好的ajax服务器端控件等这些初级阶段的Ajax应用,不是长久之计。
    看了Prototype.js和script.aculo.us的相关文档、demo后,才真正开拓了自己的视野了。Ajax,除了异步请求外,还有一个最重要的就是如何将返回的数据更新到页面上了,目前都是用DOM对象对页面进行部分更新,看了script.aculo.us的开发包后,有种感觉,ajax技术的“异步更新”的含义更淡了,或者说它们根本就不是单单为Ajax而存在的,更确切的说法它们是为了开发更丰富的客户端体验而存在的。但是如何解决更新页面的ViewState,也就是如何使ajax更新的页面内容在页面刷新时被保留却一个很棘手的问题了,比如现在的很多ajax框架都提供一种页面的拖拽功能,但是一旦页面刷新后,刚刚所做的拖拽修改就全部都没了,那么如何将这些操作保存起来呢,如何将它们保存在ViewState?或者说,它们原本就都是客户端操作,根本就没有ViewState的概念,更无所谓保留状态了。
     还是来说说我今天一直在思考的一个问题吧,那就是无刷新转页面?页面操作无刷新就不得了,转页面还要无刷新?是不是有点过份了?确实,我一直在想,如果够做到一个程序内部跳转页面都不用刷新,都就太帅了,可是一直都没有找到比较合理的方法。为什么会有这种想法呢?我想解决程序的导航菜单不刷新的问题,如果菜单使用了类似拖拽,自动隐藏,自动收缩等这些技术,(不知道google页面是如何实现的,在自定义页面那边有一个动态显示菜单,它的页面还可以做到客户端分辨率的自适应,在800*600和1024*768,甚至是任何模式下都能保持全屏显示,并且页面不会有什么的变形,也没有水平滚动条。)那如果转页面了,这些操作不都没了。所以就想如何能做了跳转页面无刷新,这种担心就可以消除掉了。目前主要以下几种思路:
    1.使用框架页面,这是最简单的办法了,但是却是我最不想用的办法,可以说宁原愿没有以上的功能,我也不准备用这个办法来实现。
    2.一个大胆的假想,只用一个动态页面,然后将其它所有的操作都写在用户控件里,然后根据菜单的需要,动态创建这些用户控件,让用户操作。不过这样一样可能会产生其它的问题,至少开发难度会加大吧?
    3.没有,目前没有更多想法了,由于目前没有相关的经验和知识的欠缺,暂时想不到更好的方法了。
    乱想一通,只求以后能有更深的理解。
   

posted on 2006-06-08 20:19  阿不  阅读(2626)  评论(5编辑  收藏  举报