为什么不直接使用ajax页面请求来加载页面内容?

时间:2009-03-12 20:50:11

标签: php ajax request

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

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

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

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

9 个答案:

答案 0 :(得分:13)

搜索引擎,抓取工具/蜘蛛程序,没有javascript的浏览器,屏幕阅读器和内容的其他消费者都不会对此感到满意。

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

答案 1 :(得分:6)

整个前提是,使用AJAX,您无需重新加载整个页面来更新该网页的一小部分。这节省了带宽,通常比重新加载整个页面快得多。

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

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

答案 2 :(得分:2)

我会给你一个很好的理由。

如果您在浏览器中关闭javascript,它将无效。

答案 3 :(得分:1)

最大的骗局是禁用JavaScript的用户。您的网站根本不适用于他们。

答案 4 :(得分:0)

除了已发布的答案之外,使用AJAX可能会对浏览器控件产生难看的副作用,例如停止按钮无法正常工作。

答案 5 :(得分:0)

有一件事是您希望内容拥有静态网址,您希望人们能够链接到您的网页,为其添加书签等。

如果一切都被解决了,这可能会很棘手和/或乏味。

答案 6 :(得分:0)

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

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

答案 7 :(得分: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
   })
}

答案 8 :(得分:0)

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

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