扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
作者:builder.com.cn 2007年3月12日
关键字:
AJAX七宗致命罪
AJAX所使用的JavaScript是内存管理的语言。这意味着JavaScript具有内置的信息包收集功能,因此能够抽取不再有引用路径使用的变量并重新分配这些变量所使用的内存。
作为基本工作原理这很好,但是在模型对象和察看元素之间互相引用时,由于这些循环引用,你就不能依靠这个功能来实现你的内存使用最优化。从原则上讲,对象为零,则元素为零,但是如果这时从元素到对象的向后引用,那么信息包搜集器不会动这些对象。
现在,问题出来了:在文件对象模型中,任何文件树中的DOM节点都可能被树中的其它元素引用,不论其是否被其他对象所引用!因此任何在信息包收集器中经过标注的被DOM节点向后引用的对象,在这一方向必须为空,否则其内存就会一直处于已分配状态。
的网页应用程序属于桌面应用程序,那么他们肯定不会感到不安。这是一个至关重要的设计点。大部分网页应用功能与桌面副本非常类似。但是在网页应用中,用户期望这种虚幻的特征导致他们截然不同。
用户在与网页浏览器打交道时会带有非常不同的偏见和期望,而对于桌面应用中他们并没有这样的行为。因此,尽管页面与服务器之间频繁的响应会非常好,非常高效,页面能够同时对自身进行修订,但是这将会使用户头晕眼花。因此,您需要遵守两条守则,要考虑到进入用户视觉范围内的每个变化:如果对于用户来说不是很迫切的更新,那么要使升级更为温和,不会转移;如果更新对于用户与应用的交互非常重要,那么更新要清楚而明显。
端的应用了解全部情况并且能够看到全部状况:每个例外,每次重新加载,每个事件多能被看到并记录下来,当然服务器也知道客户端是什么状况,因为服务器会记录下屏幕上显示的一切。
在AJAX应用程序中,问题不是这样。当有事件发生时,这些事件是与服务器相互独立的,也就是说,当客户端出现问题时,服务器端并不会马上知道。在某个位置发现和记录客户端发生的事件以及例外,使服务器能够尽快追踪需要干涉的问题。
即使你认为这样做没有危害。GET操作改变状态,改变状态的链接会令用户感到困惑;大部分都认为链接的作用是导航,而不是功能。
但这呈现给我们一个我们可能会碰到的问题:确定JavaScript能够理解其运行平台上的数据类型,反之,对于.NET或其他都是如此。可能会有多种转换器,你需要把它们找出来。例如,Ajax.NET Pro资料库,提供能够转换.NET 和 JavaScript对象符号的转换器。
你见过多少比美国国会议事录还长的网页?如果网页无限延长无疑会是用户的噩梦,只要想想用户会怎么看待永不停止的应用程序就知道了。让您的网络应用具有动态效果,但是一定要在可行的限度之内。
(Model-View-Controller)结构之上。请认真地对待这点。JavaScript属于模型层面,DOM属于视觉层面,而控制器是他们的婚姻顾问。保证让你的网络文件独立于JavaScript之外(这样有利于不支持JavaScript的用户)--除了当内容自身只在用户使用JavaScript时才有意义及可操作性。在这种情况中,用JavaScript创建内容。
责任编辑:德东
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者