5

许多网页加载所有内容以更改非常少的信息。

现在我想知道为什么开发人员不应该只使用 ajax 来处理主页请求?

在我自己的网页上,我想只使用 ajax 在我的网页上开发主要请求,但我不知道这种方法有什么具体的缺点。

有人知道为什么有人不应该这么多使用ajax吗?

4

9 回答 9

13

搜索引擎、爬虫/蜘蛛、没有 javascript 的浏览器、屏幕阅读器和其他内容消费者不会对它很满意。

如果您已经支持完整内容的标准服务器端导航,则可以在您的网站上提供大量的 ajax 行为。查看渐进增强 (SO)渐进增强 (wiki)

于 2009-03-12T20:53:21.347 回答
6

整个前提实际上是使用 AJAX,您无需重新加载整个页面即可更新该网页的一小部分。这可以节省带宽,并且通常比重新加载整个页面要快得多。

但是如果您使用 AJAX 来加载整个页面,这实际上会适得其反。您必须编写自定义例程来处理 AJAX 数据的回调。它的大量额外工作几乎没有提高性能。

在哪里使用 AJAX 的一般规则:如果您更新页面的 >50%,只需重新加载,否则使用 AJAX。

于 2009-03-12T21:00:19.600 回答
2

我给你一个很好的理由。

如果您在浏览器中关闭 javascript,它将无法正常工作。

于 2009-03-12T20:52:34.983 回答
1

最大的问题是禁用 JavaScript 的用户。您的网站根本不适合他们。

于 2009-03-12T20:51:45.157 回答
0

好吧,您总是可以使用 jquery 不显眼地添加 onclick 事件并停止正常的 URL 处理。

例如:

HTML

<a id="ajaxify-this" href="my-working-url">Click me to do AJAXy stuff if you have javascript</a>

然后是 Javascript

$(document).ready(function() {       
  $("#ajaxify-this").click( function(e) {
       updateContent(); // do something ajaxy with the page
       return false; // stop the click from causing navigation
   })
}
于 2009-03-13T12:39:25.300 回答
0

我只使用 JavaScript 和 EJS 作为我自己网站的模板引擎。离 SOFEA/SOUI 又近了一步。

搜索引擎、爬虫/蜘蛛、没有 javascript 的浏览器、屏幕阅读器不喜欢它,对。但我遵循主流;)

于 2009-03-13T12:44:09.440 回答
0

除了已经发布的答案之外,使用 AJAX 可能会对浏览器控制产生丑陋的副作用,例如停止按钮不起作用。

于 2009-03-12T20:58:37.217 回答
0

一件事是您希望内容具有静态 url,您希望人们能够链接到您的页面、为它们添加书签等。

如果一切都是 ajaxified,这可能会很棘手和/或乏味。

于 2009-03-12T21:02:56.770 回答
0

好吧,如果您想 AJAX 加载新页面,例如 Gmail 的工作方式,我建议您的链接是正常的 A HREF 链接指向真正的完整呈现页面 URL,并且使用 onclick 事件来停止尝试正常链接加载并进行 AJAX 调用。这里的问题是,除非您将这一切都很好地架构,否则您将进行几乎双重编码。

这样正常的非 JS 链接加载整个页面,而 JS 调用只加载新的部分或页面。这意味着蜘蛛索引也再次起作用。

于 2009-03-12T21:55:05.863 回答