许多网页加载所有内容以更改非常少的信息。
现在我想知道为什么开发人员不应该只为主页请求使用ajax?
在我自己的网页上,我想仅使用ajax在我的网页上开发主要请求,但我不知道这种方法有任何具体的缺点。
有没有人知道为什么有人不应该这么多使用ajax?
答案 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的浏览器,屏幕阅读器不喜欢它,对。但我遵循主流;)