什么时候适合使用AJAX?

时间:2009-02-17 20:56:22

标签: php ajax webforms

何时适合使用AJAX?
使用AJAX有什么优缺点?

回答我的上一个问题:有些人似乎非常坚定,如果情况合适,我应该只使用AJAX: Should I add AJAX logic to my PHP classes/scripts?

回应Chad Birch的回答: 是的,我指的是在开发一个“标准”网站时会采用AJAX来获得它的好处,并且不会被其应用程序削弱。以一种会破坏搜索排名的方式使用AJAX是不可接受的。因此,如果“保持网站完整”需要更多的工作,那将是一个“骗局”。

8 个答案:

答案 0 :(得分:8)

这是一个非常大的主题,但您应该使用AJAX来增强用户体验,而不会让网站完全依赖它。请记住,搜索引擎和其他一些访问者将无法执行AJAX,因此如果您依赖它来加载您的内容,那么这对您不利。

例如,您可能认为让用户访问您的博客会很好,然后让页面在AJAX已经存在的情况下动态加载最新的文章。但是,当Google尝试为您的博客编制索引时,它只会获得空白网站。

找到与此主题相关的资源的良好搜索词是“渐进增强”。那里有很多好东西,花一些时间关注周围的链接。这是一个让你开始的人:

http://www.alistapart.com/articles/progressiveenhancementwithjavascript/

答案 1 :(得分:5)

当您只是更新页面的一部分或者可能执行不更新页面的操作时,AJAX可能是一个非常好的工具。对于像这样的东西,它比整个页面刷新更轻量级。相反,如果您的整个页面重新加载或者您更改为其他视图,您实际上应该只链接(或发布)到新页面,而不是通过AJAX下载并替换整个内容。

使用AJAX的一个缺点是它需要javascript才能工作,或者你构建视图的方式使得UI在没有它的情况下仍然可以工作。这比通过普通链接/帖子做这更复杂。

答案 2 :(得分:2)

AJAX通常用于在页面已加载时执行HTTP请求(不加载其他页面)。

最常见的用途是更新部分view。请注意,这不包括刷新整个视图,因为您只能导航到新页面。

另一个常见用途是提交表格。在所有情况下,尤其是对于表单,重要的是要有好的方法来处理没有javascript或禁用它的浏览器。

答案 3 :(得分:2)

我认为使用 ajax 技术的优势不仅在于创造更好的用户体验,而且只为特定数据进行服务器调用的能力也是一项巨大的性能优势。

想象一下拥有一个巨大的带宽吞吐站点(如stackoverflow),用户完成的大部分导航都是通过页面重新加载和通过HTTP连续发送的数据完成的。

当然缓存和其他技术有助于解决带宽问题,但我个人认为每次发送大量HTML都是一种浪费。

缺点是SEO(不适用于基于高度的ajax网站)和禁用JavaScript的人。

答案 4 :(得分:1)

当您的应用程序(或您的用户)需要比传统网页提供的更丰富的用户体验时。

答案 5 :(得分:1)

Ajax为您提供了两件大事:

响应性 - 如果需要,您可以一次仅更新网页的某些部分(节省重新加载页面的时间)。例如,它还可以更轻松地分页表中显示的数据。

用户体验 - 这与响应性一致。使用AJAX,您可以添加动画,更酷的弹出窗口和特殊效果,为您的网页提供更新,更清洁,更酷的外观和感觉。如果没有人认为这很重要,那么请关注iPhone。用户体验将人们引入应用程序并使他们想要使用它,这是确保应用程序成功的关键步骤之一。

有关一个好的案例研究,请查看此站点。 AJAX效果就像在发布时为你的新答案设置动画,弹出窗口告诉你你不能做某些事情,并提示自你开始自己的答案以来已经发布了新的答案,这些都是吸引人们进入这个网站并使其成功的一部分。 / p>

答案 6 :(得分:0)

当您想要重新加载部分页面而不将所有信息重新发布到服务器时,主要使用Ajax。

缺点:

  • 比正常帖子更复杂(使用不同的浏览器,将服务器端代码编写为部分回发)
  • 介绍潜在的安全漏洞( 您正在引入与服务器交互的其他代码。这可能是客户端和服务器上的问题 在客户端,您需要发送和接收响应的方法。这是与浏览器交互的另一种方式,这意味着还有另一个需要保护的入口点。执行arbritary代码,将数据发布到非预期的来源等。随着时间的推移,Ajax应用程序有一些漏洞,但总会有更多。 )

优点:

  • 最终用户看起来更加华丽
  • 允许在页面上显示大量信息,而无需同时加载所有信息
  • Page更具互动性。

答案 7 :(得分:0)

Javascript应始终只是您网站功能的补充。您应该能够使用和导航网站,而不涉及任何Javascript。您可以使用Javascript作为现有功能的补充,例如,以避免整页重新加载。这是可访问性的重要因素。永远不应将Javascript用作在您的网站上覆盖或完成请求的唯一可能性。

由于AJAX使用Javascript,这同样适用于此。