我正在IBM's website上阅读有关AJAX的内容。这是它所说的,
如果应用程序无法通信,可能会让用户不确定 关于实际发生的事情。如果他们单击“表单提交”按钮 没有任何反应,他们可能会认为网站已被破坏。如果 应用程序无法通知用户发生错误 一般认为他们的行动成功了。这个假设可以导致 如果现实是行动没有,那就极度沮丧 成功,特别是如果用户刚刚花了很长时间工作 表格的内容。如果应用程序在那里通知用户 是错误或超时,至少用户有机会复制 并粘贴数据并将其保存在本地,从而避免最坏的情况之一 可能的用户体验。
现在使用JavaScript或HTML时也会出现此问题。为什么作者将AJAX称为Ajax can ruin your site
?
答案 0 :(得分:1)
因为您可以更加确定您的本地JavaScript代码将按预期执行。但是,由于Ajax可能会受到网络拥塞和其他外部问题的影响,因此您无法确定。除非采取适当的预防措施(例如检查超时),否则可能根本不会调用某些功能,使用户感到困惑。
答案 1 :(得分:1)
这很危险,因为在使用AJAX处理表单提交时,您正在改变通常的用户体验。当用户点击提交按钮时,您负责通知他们实际发生了某些事情(例如,放置加载的gif)
如果请求失败,您还有责任通知用户失败,并可能提供解决方案和信息。如果你不这样做,那么用户将对所发生的事情一无所知,如果他们发送的信息已经保存,他们将不知道他们的表格提交是否真的有所作为......等等
AJAX是“危险的”,因为它完全依赖开发人员才能正常工作。
如果网络连接丢失,例如,AJAX请求将失败,许多开发人员忘记使用计时器来检查这种事情,因此用户将不知道实际发生了什么。如果请求确实已发送到服务器,但答案未返回,则可能已完成操作(例如,注册新用户),但用户将不知道。
答案 2 :(得分:1)
静态javascript代码每次执行时应该具有相同的结果(这实际上取决于代码,但我们讨论的是一般/简单的javascripts)。 另一方面,AJAX总是受到影响其执行的外部因素(互联网连接问题/超时/服务器负载等)。 我看到许多AJAX脚本没有处理超时或连接/读取尝试失败,而“加载栏”(如果有的话)挂起