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

发布于 2024-07-15 09:31:51 字数 161 浏览 6 评论 0原文

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

现在我想知道为什么开发人员不应该使用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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(9

随遇而安 2024-07-22 09:31:51

搜索引擎、爬虫/蜘蛛、没有 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).

深海蓝天 2024-07-22 09:31:51

整个前提实际上是,使用 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.

栖竹 2024-07-22 09:31:51

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

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

I'll give you one very good reason.

If you turn off javascript in the browser it won't work.

梦中的蝴蝶 2024-07-22 09:31:51

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

The biggest con are users who have JavaScript disabled. Your website simply won't work for them.

故事和酒 2024-07-22 09:31:51

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

Aside from the answers already posted, using AJAX can have ugly side effects on browser control, such as the stop button not working.

赠佳期 2024-07-22 09:31:51

一件事是你希望内容有一个静态 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.

苦妄 2024-07-22 09:31:51

好吧,如果您想 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.

Spring初心 2024-07-22 09:31:51

好吧,您始终可以使用 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
   })
}

Well, you can always add the onclick event unobtrusively using jquery and stop the normal URL handling.

Eg:

HTML

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

then Javascript

$(document).ready(function() {       
  $("#ajaxify-this").click( function(e) {
       updateContent(); // do something ajaxy with the page
       return false; // stop the click from causing navigation
   })
}
醉梦枕江山 2024-07-22 09:31:51

我只使用 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 ;)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文