Php 为什么不在页面请求中使用ajax来加载页面内容呢?

Php 为什么不在页面请求中使用ajax来加载页面内容呢?,php,ajax,request,Php,Ajax,Request,许多网页加载所有内容,只需更改很少的信息 现在我想知道为什么开发人员不应该对主页请求使用ajax 在我自己的网页上,我想用ajax开发网页上的主要请求,但我不知道这种方法有什么具体的缺点 有人知道为什么不应该这么多地使用ajax吗?最大的缺点是禁用了JavaScript的用户。你的网站根本不适合他们。我给你一个很好的理由 如果在浏览器中关闭javascript,它将无法工作。搜索引擎、爬虫/爬行器、没有javascript的浏览器、屏幕阅读器和其他内容消费者将不会对它感到非常满意 如果您已经支持

许多网页加载所有内容,只需更改很少的信息

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

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


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

最大的缺点是禁用了JavaScript的用户。你的网站根本不适合他们。

我给你一个很好的理由


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

搜索引擎、爬虫/爬行器、没有javascript的浏览器、屏幕阅读器和其他内容消费者将不会对它感到非常满意


如果您已经支持完整内容的标准服务器端导航,那么您可以在网站顶部提供大量ajax行为。看看和。

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

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

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


在何处使用AJAX的一般规则:如果您的页面更新超过50%,只需重新加载,否则使用AJAX。

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


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

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


这样,普通的非JS链接加载整个页面,JS调用只加载新的部分或页面。这意味着爬行器索引也可以再次工作。

好吧,您可以使用jquery悄悄地添加onclick事件,并停止正常的URL处理

例如:

HTML


我只使用JavaScript和EJS作为我自己的Web站点的模板引擎。离索非亚/苏伊更近一步


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

你怎么会对一开始连自己都看不见的东西不高兴呢你不会高兴,因为你的网站搜索引擎优化不友好。一般来说,有一些技术可以缓解这些问题(对于ajax或flash中的富网站),比如sitemaps协议,但是对于您自己和整个web来说,您能做的最好的事情就是用纯HTML设计您的网站流!有一些很好的库可以绕过这个问题:除了cherouvim列出的明显原因之外,这是一个巨大的原因——没有什么比我更好地解决冲突了……)$(document).ready(function(){$(“.nav”).removeAttr(“href”);});如果js处于活动状态,那么jquery将禁用href内容,我可以使用我的ajax调用…:pyou也可以使用e.preventDefault();指示返回错误;
<a id="ajaxify-this" href="my-working-url">Click me to do AJAXy stuff if you have javascript</a>
$(document).ready(function() {       
  $("#ajaxify-this").click( function(e) {
       updateContent(); // do something ajaxy with the page
       return false; // stop the click from causing navigation
   })
}