2007-03-14

AJAX应用程序开发七宗罪

来源: 开发者 作者:佚名 评论 0 条
 

实话实说,其中大部分是常识性问题。真正的问题都很轻易让人忽视的。

AJAX七宗致命罪

    • 造成内存泄漏任何长期从事开发工作的人都知道循环引用,并了解其给内存治理带来的危害。

AJAX所使用的JavaScript是内存治理的语言。这意味着JavaScript具有内置的信息包收集功能,因此能够抽取不再有引用路径使用的变量并重新分配这些变量所使用的内存。

作为基本工作原理这很好,但是在模型对象和察看元素之间互相引用时,由于这些循环引用,你就不能依靠这个功能来实现你的内存使用最优化。从原则上讲,对象为零,则元素为零,但是假如这时从元素到对象的向后引用,那么信息包搜集器不会动这些对象。

现在,问题出来了:在文件对象模型中,任何文件树中的DOM节点都可能被树中的其它元素引用,不论其是否被其他对象所引用!因此任何在信息包收集器中经过标注的被DOM节点向后引用的对象,在这一方向必须为空,否则其内存就会一直处于已分配状态。

    • 不了解“异步”的含义--异步很轻易让不熟悉它的用户感到紧张。但是假如您为这些用户所设计

的网页应用程序属于桌面应用程序,那么他们肯定不会感到不安。这是一个至关重要的设计点。大部分网页应用功能与桌面副本非常类似。但是在网页应用中,用户期望这种虚幻的特征导致他们截然不同。

用户在与网页浏览器打交道时会带有非常不同的偏见和期望,而对于桌面应用中他们并没有这样的行为。因此,尽管页面与服务器之间频繁的响应会非常好,非常高效,页面能够同时对自身进行修订,但是这将会使用户头晕眼花。因此,您需要遵守两条守则,要考虑到进入用户视觉范围内的每个变化:假如对于用户来说不是很迫切的更新,那么要使升级更为暖和,不会转移;假如更新对于用户与应用的交互非常重要,那么更新要清楚而明显。

    • 使服务器在黑暗中—用户端与服务器的交流减少是一大问题,而以前并非如此。在以前,服务器

端的应用了解全部情况并且能够看到全部状况:每个例外,每次重新加载,每个事件多能被看到并记录下来,当然服务器也知道客户端是什么状况,因为服务器会记录下屏幕上显示的一切。

在AJAX应用程序中,问题不是这样。当有事件发生时,这些事件是与服务器相互独立的,也就是说,当客户端出现问题时,服务器端并不会马上知道。在某个位置发现和记录客户端发生的事件以及例外,使服务器能够尽快追踪需要干涉的问题。

    • GET偷懒—GET用于重新找回数据;POST用于对GET设置。不要在不适当的时候使用GET,

即使你认为这样做没有危害。GET操作改变状态,改变状态的链接会令用户感到困惑;大部分都认为链接的作用是导航,而不是功能。

    • 不兼容数据类型--JavaScript不是.NET Framework框架中的一部分。尽管这的确令人伤心,

但这呈现给我们一个我们可能会碰到的问题:确定JavaScript能够理解其运行平台上的数据类型,反之,对于.NET或其他都是如此。可能会有多种转换器,你需要把它们找出来。例如,Ajax.NET Pro资料库,提供能够转换.NET 和 JavaScript对象符号的转换器。

    • 一些应用程序不知道何时关闭--无需刷新页面的内容动态生成假如没有关闭时间将会非常糟糕。
      共3页: 上一页 [1] 2 [3] 下一页
(本文仅表明作者个人观点,不代表本站及其管理员立场.) 推荐 收藏 投稿 打印 返回 关闭
上一篇:学习HTML 4.0事件属性  
下一篇:HTML基础教程:学习掌握HTML 元素
    评论加载中…

网站首页  -  网站地图 -   站长论坛  -  网站投稿  -    -  网站管理
Copyright © 2008 芜湖站长站 All Rights Reserved 皖ICP备07500611号