【发布时间】:2011-02-15 10:18:22
【问题描述】:
我对开发基于 Ajax 的应用程序非常感兴趣。也就是说,通过 XMLHttpRequest 加载应用程序的几乎所有内容,而不仅仅是一些组合和小部件。但是如果我试着从头开始做这个表格,我很快就会发现一些没有简单解决方案的问题。我想知道是否有一些框架(客户端和服务器端)来处理这个问题。据我所知,没有(但我主要在 Java 世界中搜索)。所以我正在认真考虑做我自己的框架,至少对于我的项目来说是这样。
因此,在这个问题中,我要问几件事。首先,基于 ajax 的开发可能存在的问题。然后,我正在寻找一些框架或实用程序来处理它们。最后,如果没有可用的框架,它必须具备哪些功能。
以下是我想到的问题:
1 - 必须启用 JavaScript。安全偏执不是唯一的问题:许多移动设备也无法使用该应用程序。
2 - 有时您需要更新多个 DIV(例如主要内容、菜单和面包屑)。
3 - 未知的响应类型:当您进行 Ajax 调用时,您也设置了回调函数,通常指定预期响应是否为 javascript 对象或 DIV 将结果放入其中。但是当您收到另一种类型的响应时,这会失败:例如,当会话已过期并且用户必须重新登录时。
4 - 浏览器的刷新、后退和前进按钮真的很痛苦。用户会根据情况期待不同的行为。
5 - 当搜索引擎索引一个站点时,只跟随链接。因此,Ajax 加载的内容不会“存在”,因为谁还不知道呢。
6 - 用户可以要求在不同的窗口/选项卡中打开链接。
7 - 地址栏不显示您所在的“真实”页面。因此,您无法复制该位置并将其发送给朋友或为该页面添加书签。
8 - 如果您想通过网站获利,您可以投放一些广告。由于您不刷新整个页面并且希望在一段时间后更改广告,因此您只需刷新广告所在的 DIV。但这可能会违反您的广告服务的条款和条件。事实上,它可能违反 AdSense TOS。
9 - 当您刷新整个页面时,所有 JavaScript 都会被“清理”。但在 Ajax 调用中,所有 JavaScript 对象都将保留。
10 - 您不能轻易更改 CSS 属性。
【问题讨论】:
标签: java javascript ajax frameworks