Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/464.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 有没有不使用AJAX的重要原因?_Javascript_Ajax_Web Applications - Fatal编程技术网

Javascript 有没有不使用AJAX的重要原因?

Javascript 有没有不使用AJAX的重要原因?,javascript,ajax,web-applications,Javascript,Ajax,Web Applications,我正计划让我的web应用程序变得相当重AJAX 在此之前,我想知道人们对这些网站的看法。有什么重要的理由不这样做吗 顺便说一句,没有必要提及搜索引擎优化的原因。此外,我认为这些好处弥补了一个事实,即没有javascript的人经验有限(尽管我很乐意相信没有javascript的人经验有限)。AJAX是一种工作工具。如果该工具最适合您的应用程序,请使用它 编辑——只需确保充分理解权衡。另外,在使用AJAX时,没有任何东西可以阻止您在需要时准备好非AJAX备份…这取决于您如何使用AJAX。页面在呈现

我正计划让我的web应用程序变得相当重AJAX

在此之前,我想知道人们对这些网站的看法。有什么重要的理由不这样做吗


顺便说一句,没有必要提及搜索引擎优化的原因。此外,我认为这些好处弥补了一个事实,即没有javascript的人经验有限(尽管我很乐意相信没有javascript的人经验有限)。

AJAX是一种工作工具。如果该工具最适合您的应用程序,请使用它


编辑——只需确保充分理解权衡。另外,在使用AJAX时,没有任何东西可以阻止您在需要时准备好非AJAX备份…

这取决于您如何使用AJAX。页面在呈现时必须等待,然后在脚本执行和加载实际内容时再等待10秒,这会让人生气。页面加载速度快,并且使用AJAX做得很好,当然也不错


搜索引擎优化是一回事,但在你的网站上找到东西的能力是另一回事。你必须想办法让谷歌为你的内容编制索引。因此,您仍然需要一个“纯文本”版本,其中链接的行为就像链接一样。

这取决于您计划如何使用它,IMO

1) 如果没有它,站点将完全失败,那么您将排除禁用脚本的用户。我认为在许多情况下,限制但不删除无脚本用户的功能是公平的(例如,如果禁用脚本,谷歌不会自动完成搜索;它不能……但基本搜索仍然有效)

2) 需要在正确的地方使用正确的技术。例如,如果将数千个元素转储到ASP.Net UpdatePanel中,它的性能将非常糟糕

3) 我越来越喜欢在页面上以小块形式加载的内容,这些内容不需要完全刷新,也不需要再次执行整个页面。这非常适合SOA,但更受#1的限制


4) 编辑:不要创建(由于AJAX)行为异常的UI元素。例如,我曾经构建了一个下拉列表,只有在切换时才会填充该列表。由于延迟和DOM创建时间的原因,它没有响应。此外,大小通常会根据动态添加的元素而变化。您可以提出解决这些问题的方法,但这仍然是对技术的错误使用。

深度链接可能是Ajax密集型网站的一个问题。有很多解决方法(即使用url哈希技术),但这些方法并不总是故障安全的。

显然,有许多流行的网站依赖AJAX,因此如果使用得当,当然不需要避免。然而,有一些事情需要考虑:

  • 用户是否需要能够进行深度链接(即将书签保存到动态创建的“页面”?他们是否需要使用后退按钮来导航?(这两件事都可以使用AJAX来完成,但需要明确考虑,因为AJAX的幼稚实现可能会使它们工作得很差或根本不工作。)
  • AJAX的使用是否会对残疾用户(例如使用屏幕阅读器的用户)产生负面影响

地球另一端的用户,由于物理原因,其速度限制为3×108 m/s,如果使用AJAX进行大量UI交互,他们会发现您的站点运行缓慢且无响应


从新西兰到加利福尼亚的典型数据包周转时间(往返)约为200毫秒,用户界面应在100毫秒内做出响应,以免感觉迟钝。

+1是一个好问题。根据我的经验,人们只想要一个反应灵敏、直观的网站。无论技术如何,发展都应面向这一目标。在许多情况下,AJAX是实现这一目标的好工具。请注意AJAX应用程序的可访问性需求。这一要求可能取决于您的目标受众。+1,这是一个很棒的问题,通过警告SEO答案来进行更好的讨论。我认为一个好的开始是仔细思考没有AJAX我们可以做什么——制作一个详细的功能列表。然后考虑如何使用AJAX来增强这些特性。这种结构化的方法往往会阻止你的网站被转载到无法返回的地步。是的,我计划使用url哈希进行深度链接。深度链接评论+1。我见过不正确的实现会破坏导航(例如,更改后退按钮的预期行为)。关于屏幕阅读器等,大多数(如果不是全部的话)都可以通过ARIA来缓解,即使是纯javascript应用程序也可以实现良好的可访问性。我相信它不会变得更好,如果您重新加载整个页面:-)@naivists:在提供UI反馈之前避免往返服务器是避免此问题的一种方法。这就是为什么您应该首先在没有AJAX的情况下呈现整个页面,然后在一些用户交互中使用AJAX。在页面加载上使用AJAX回调是个坏主意,它是无用的,并且会降低性能performances@Mike-我不认为总是这样。假设您有一个页面,其中有一个运行速度非常慢的组件。撇开缓存/优化不谈,在我看来,加载页面的chrome、其他内容和一条清晰的“XYZ正在加载”消息来代替加载内容要比同步呈现整个内容并让页面显示为挂起几秒钟要好得多。我已经在几个生产应用程序中实现了这种模式,这是用户和业务涉众都喜欢的;我的手机公司有一个非常糟糕的网站:不管怎么说,它速度很慢,但是我的账户主页是由4个AJAX请求构建的。