Online Book Reader

Home Category

Beautiful RIA [5]

By Root 425 0
到一致的效果,开发人员往往费劲了周折。目前的情况要好了不少,不同的浏览器都有 了自己比较好用的调试工具,如 Firefox上的 Firebug,IE上的 developer toolbar等。当出现 问题的时候,可以通过这些工具来直接修改页面上的 DOM结构和 CSS样式来进行试验。找 到正确的解法之后再用代码来实现。很多工 具都支持直接在控制台输入 JavaScript语句来执 行,通过这种方式可以快速的查看程序中变量的值以及调用 JavaScript方法来改变应用的内 部状态,从而发现问题的原因。

内存泄露

Web 应用内存泄露的问题一直存在,Ajax应用的出现把这个问题进一步暴露出来。目前很 多的 Ajax应用都是单页面应用(Single-page Application,SPA)。用户通常会在单个页面上使 用比较长的时间而不关闭浏览器。在用户操作过程中产生的一些小的内存泄露会累积起来, 导致浏览器占用内存不断增加,应用运行起来越来越缓慢。

面对内存泄露问题,一般来说需要注意下面几点:

1. 熟悉常见的内存泄露模式。最典型的是由于错误使用闭包造成的包含 DOM节点的循环 引用。打断循环引用就可以解决此问题。

2. 很大一部分内存泄露与 DOM节点相关。尽量不要为 DOM节点对象添加额外的属性,尤 其是 JavaScript方法。

Ajax应用开发:实践者指南

3. 当内存泄露发生的时候,使用 Drip等工具来找到发生泄露的节点并修正。

安全

Ajax 的出现并没有解决存在的一些安全问题,同时也带来了一些新的安全隐患。传统 Web 应用中存在的跨站点脚本攻击(XSS)、SQL注入和跨站点请求伪造(CSRF)等安全问题在 Ajax 应用中仍然需要解决。对于 XSS来说,一般的解决办法是不信任用户的任何输入。输出的时 候对所有的东西进行转义(escape)。只对那些明确知道是安全的(白名单)的东西恢复转 义(unescape)。 对 于 CSRF的解决办法是对所有的请求添加一个验证令牌,用来确保请求是 来自于自己的站点。

Ajax 带来的新的安全隐患主要与 JSON有关。一部分 Ajax应用的服务器端暴露 JSON格式的 数据。JSONP允许通过