2009-02-17 25 views
3

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

在回答我的最后一个问题:有些人似乎很坚定地认为我应该只使用AJAX,如果情况是适当的: Should I add AJAX logic to my PHP classes/scripts?

针对乍得桦木的回答是: 是的,我指的是当开发一个“标准”网站,它将利用AJAX的优势,并且不会因其应用程序而受到影响。以一种会杀死搜索排名的方式使用AJAX是不可接受的。因此,如果“保持网站完好”需要更多的工作,那么这将是一个“骗局”。

回答

8

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

例如,您可能认为让用户访问您的博客会很高兴,然后让页面动态加载最新的文章(一旦他们已经在那里)。但是,当Google试图为您的博客编制索引时,它只会获得空白网站。

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

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

0

Ajax主要用于在不重新发布所有信息到服务器的情况下重新加载页面的一部分。

缺点:

  • 比做普通帖子(使用不同的浏览器中工作,编写服务器端代码hadle部分回发)
  • 推出潜在的安全漏洞( 更复杂的您将引入额外的代码进行交互在客户端和服务器端都可能出现问题
    在客户端上,您需要发送和接收响应的方式,这是与浏览器交互的另一种方式,这意味着还有另一个入口点需要守护。执行arqueitary代码,po将数据刺入非预期的源代码等等。对于随着时间推移而被插入的Ajax应用程序,有几个漏洞,但总会有更多漏洞。 )

优点:

  • 它看起来华丽到最终用户
  • 允许在网页上显示大量的信息,而无需加载所有在同一时间
  • 页是更具互动性。
+0

解释使用Ajax创建的安全漏洞。 – 2009-02-17 21:06:47

+0

不应该是 - 服务器仍然负责执行它。 – 2009-02-17 21:14:11

+0

你不能认真吗?实现ajax时,您认为没有任何其他安全漏洞? – kemiller2002 2009-02-17 21:25:14

5

当你只更新页面的一部分或者执行一个不会更新页面的动作时,AJAX可能是一个非常好的工具。它比整个页面刷新更轻量。相反,如果您的整个页面重新加载或您更改为不同的视图,您应该只是链接(或张贴)到新页面,而不是通过AJAX下载并替换整个内容。

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

2

AJAX通常用于在页面已经加载的情况下执行HTTP请求(无需加载其他页面)。

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

另一个常见的用法是提交表单。在所有情况下,特别是对于表单,重要的是要有好的方法来处理没有JavaScript或浏览器被禁用的浏览器。

0

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

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

2

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

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

当然缓存和其他技术可以帮助解决这个带宽问题,但是我个人认为每次发送大量的HTML都是浪费。

缺点是搜索引擎优化(它不适用于高度基础的ajax网站)和禁用JavaScript的人。

1

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

1

阿贾克斯给你两件大事:

响应性 - 你可以在同一时间更新一个网页的部分仅在必要时(节省重新加载页面的时间)。例如,它也使页面中呈现的数据变得更容易。

用户体验 - 这与响应速度一致。借助AJAX,您可以添加动画,较酷的弹出窗口和特殊效果,为您的网页提供更新,更清晰,更酷的外观。如果没有人认为这很重要,那么看看iPhone。用户体验将人们吸引到一个应用程序中,并让他们想要使用它,这是确保应用程序成功的关键步骤之一。

对于一个好的案例研究,看看这个网站。 AJAX效果,比如发布新动画时的动画效果,弹出窗口告诉你你不能做某些事情,并暗示自从你开始自己的答案以来发布了新的答案,这些都是将人们吸引到本网站并使其成功的一部分。