为什么不直接使用 ajax 进行页面请求来加载页面内容?
许多网页加载其所有内容以更改很少的信息。
现在我想知道为什么开发人员不应该使用ajax来处理主页请求?
在我自己的网页上,我想仅使用 ajax 来开发网页上的主要请求,但我不知道这种方法有任何具体缺点。
有人知道为什么有人不应该过多使用ajax吗?
Many web pages load all of their content to change very little information.
Now I would like to know why shouldn't the developers just use ajax for the main page requests?
On my own webpage, I would like to develop the main requests on my webpage with just ajax but I don't know any specific cons with this approach.
Does anybody have an idea why someone shouldn't use ajax so much?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(9)
搜索引擎、爬虫/蜘蛛、没有 JavaScript 的浏览器、屏幕阅读器和其他内容消费者不会对此感到非常满意。
如果您已经支持完整内容的标准服务器端导航,则可以在网站顶部提供大量 Ajax 行为。 看看渐进增强(SO)和渐进增强 (wiki)。
Search engines, crawlers/spiders, browsers with no javascript, screen readers and other consumers of the content will not be very happy with it.
You can provide tons of ajax behavior on top of you website if you already support standard server side navigation for the full content. Have a look at progressive enhancement (SO) and progressive enhancement (wiki).
整个前提实际上是,使用 AJAX,您不需要重新加载整个页面来更新该网页的一小部分。 这可以节省带宽,并且通常比重新加载整个页面要快得多。
但如果您使用 AJAX 加载整个页面,这实际上会适得其反。 您必须编写自定义例程来处理 AJAX 数据的回调。 这是大量的额外工作,但性能几乎没有提高。
在何处使用 AJAX 的一般规则:如果您的更新超过页面的 50%,则只需重新加载,否则使用 AJAX。
The whole premise really is that with AJAX you don't need to reload the whole page to update a small percentage of that webpage. This saves bandwidth and is usually much quicker than reloading the whole page.
But if you are using AJAX to load the whole page this is in fact counterproductive. You have to write customised routines to deal with the callback of the AJAX data. Its a whole lot of extra work for little to no increase in performance.
General rule for where to use AJAX: If your updating >50% of your page, just reload, else use AJAX.
我会给你一个很好的理由。
如果你关闭浏览器中的 javascript,它将无法工作。
I'll give you one very good reason.
If you turn off javascript in the browser it won't work.
最大的问题是禁用了 JavaScript 的用户。 您的网站根本不适合他们。
The biggest con are users who have JavaScript disabled. Your website simply won't work for them.
除了已经发布的答案之外,使用 AJAX 可能会对浏览器控制产生丑陋的副作用,例如停止按钮不起作用。
Aside from the answers already posted, using AJAX can have ugly side effects on browser control, such as the stop button not working.
一件事是你希望内容有一个静态 URL,你希望人们能够链接到你的页面,为它们添加书签等等。
如果一切都是 ajaxified,这可能会很棘手和/或乏味。
One thing is that you want content to have a static url, you want people to be able to link to your pages, bookmark them, etc.
If everything is ajaxified, this could be tricky and/or tedious.
好吧,如果您想 AJAX 加载新页面,例如 Gmail 的工作方式相同,我建议您的链接是正常的 HREF 链接,指向真正的完整呈现页面 URL,并使用 onclick 事件来停止正常链接加载的尝试并进行 AJAX 调用。 这里的问题是,除非您将这一切架构得很好,否则您将几乎进行双重编码。
这样,普通的非 JS 链接会加载整个页面,而 JS 调用只会加载新的部分或页面。 这意味着蜘蛛索引也再次起作用。
Well if you want to AJAX load new pages, such as the same way Gmail works, I suggest your links are normal A HREF links that point to a true full rendering page URL and alos use an onclick event that stop the attempt at normal link loading and make your AJAX calls. The problem here is you'll be doing almost double coding unless you architecture this all very well.
This way the normal non JS links load the full page, and the JS calls only load the new parts or page. This means spider indexing works again too.
好吧,您始终可以使用 jquery 不显眼地添加 onclick 事件并停止正常的 URL 处理。
例如:
HTML
然后 Javascript
Well, you can always add the onclick event unobtrusively using jquery and stop the normal URL handling.
Eg:
HTML
then Javascript
我只使用 JavaScript 和 EJS 作为我自己的网站的模板引擎。 离 SOFEA/SOUI 又近了一步。
搜索引擎、爬虫/蜘蛛、没有 JavaScript 的浏览器、屏幕阅读器不喜欢它,对吧。 但我追随主流;)
I use only JavaScript and EJS as template Engine for my own webside. One step closer to SOFEA/SOUI.
Search engines, crawlers/spiders, browsers with no javascript, screen readers dislike it, right. But I follow the mainstream ;)