不应该使用AJAX的情况是什么?

时间:2009-07-29 02:50:49

标签: ajax

似乎使用AJAX的网站和应用程序正在快速增长。可能使用AJAX的一个主要原因是增强用户体验。我担心的是,仅仅因为项目可以使用AJAX,并不意味着它应该。

可能是因为AJAX为了UX而向网站/应用程序暴露了更多的安全威胁。也许你有其他原因不使用AJAX。

何时应避免使用AJAX?

8 个答案:

答案 0 :(得分:4)

获取数据已经可用或数据易于获取

我经常在汽车网站上看到,那里有品牌和型号。他们通常的<select>(没有JavaScript)包含<optgroup>这样的内容:

<select>
    <optgroup label="Ford">
        <option value="21">Escape</option>
        <option value="21">F-150</option>
    </optgroup>
    <optgroup label="Toyota">
        <option value="51">Corolla</option>
        <option value="52">Yaris</option>
    </optgroup>
</select>

然后通常然后继续隐藏<select>并创建2个新选择,一个用于制作,一个用于模型。

到目前为止一切都很好。他们开始搞砸了。

然后,他们处理查询服务器以获取make的列表,然后执行另一个查询以获取模型列表,当他们可以简单地解析原始元素时尝试获取他们的信息。然后,每次更改make时,都会发出另一个请求......

以上是不使用AJAX时的一个很好的例子。考虑一下:请求比解析可用数据更长,因此它们会让用户等待。他们可能每次都会查询他们的数据库,因此它会影响他们的服务器CPU使用率。它带来了更多的带宽。可怕的资源浪费。

他们应该做什么

他们应该简单地在<select>下解析DOM尝试以获取相关信息。每个<optgroup>都是制作<select>中的一个项目,而<option>中的每个子<optgroup>都是模型<select>中的项目。

其他例子

  • 使用AJAX进行简单的静态DOM修改(在大多数情况下,您不需要AJAX从一个选项卡切换到另一个选项卡,只需在原始请求中包含数据)。
  • 使用AJAX检索加载数据(为什么不在原始请求中包含它?)
  • 将AJAX用于图片库(为什么不在请求完成后包含图片并操作它们?)

答案 1 :(得分:3)

当您确定您的客户将使用“未启用javascript”的浏览器时,您绝对应该避免使用AJAX

答案 2 :(得分:3)

实际上,AJAX 应该用于增强用户交互。如果没有,那么Flash或你有什么。

当然,如果没有可能的增强,那么没有理由这样做。我认为这不太可能。如果你发现了这样一个案例,那就博客吧:它可能会有趣的阅读。

当然,有些情况下,AJAX是禁忌的。基本上,当你没有人使用该网站时。如果您希望该网站使用SOFTWARE驱动请求,那么您必须确保它在没有AJAX的情况下正常工作。

如果你不希望软件驱动这些请求,我肯定希望你有一个替代API,它可以完成网站的所有工作。否则你只是在欺骗自己并使你的客户失败。

答案 3 :(得分:1)

如果您的开发时间有限或您的团队缺乏足够的专业知识,那么您可以为远离AJAX编程做好准备。

But otherwise

  

[AJAX调用]不是更安全   比发出的普通HTTP POST请求   通过浏览器,如-form - 。

     

这个“修复”是相同的“修复”   对于非AJAX请求 - 使用SSL。

答案 4 :(得分:1)

我听到了很多 - 只是因为你可以用Ajax使它变得漂亮并不意味着你应该这样做。

我认为你不一定要把UI放在backburner上。这不应该是你想到的最后一件事,特别是在某些情况下。

UI是用户看到的 - 他们没有看到任何背后的复杂性,因此他们将根据使用的简单程度和对他们有意义的方式判断您的网站/应用程序的质量

考虑到这一点,根据用户的观点决定Ajax。当我点击此按钮时,页面向左滑动以显示新的部分是否有意义?它会让我感到安慰,还是让我感到困惑,看到页面显示为灰色并且前面显示了“工作......”图像?

答案 5 :(得分:1)

将用户重定向到用户可能想要加入书签的新页面时 - 即如果点击链接导致使用AJAX更新内容,则用户无法为该页面添加书签。

答案 6 :(得分:1)

当完全在客户端实现相同的功能而不需要额外的服务器往返时,应该避免使用AJAX。

例如,使用所有美国国家/地区的邮政编码列表为客户端播种并将范围邮政编码选择到适当的集合而不是去服务器获取给定的有效邮政编码列表可能更有效率。状态。

答案 7 :(得分:0)

  

可能是因为AJAX为了UX而向网站/应用程序暴露了更多的安全威胁。也许你有其他原因不使用AJAX。

如何?什么安全威胁?