【问题标题】:Reload Methods: Complete Ajax Solutions重新加载方法:完整的 Ajax 解决方案
【发布时间】:2019-06-29 17:59:35
【问题描述】:

我的 Web 应用程序在页面结构发生变化的地方使用页面重新加载。

对于用户发起的内容更改,全部由 Ajax 处理。

但是,我计划删除所有重新加载的页面,并用 ajax 调用替换它们,这些调用只是使用用于 body 和 head 标签的 innerHTML 更新页面。

为此,我知道必须手动调用通常由 onload 事件调用的函数。

完成后,我将拥有一个完整的 ajax 应用程序。我的问题是,现在是这种标准做法吗....我看到很多应用程序在其中执行某些操作并重新加载整个页面,甚至重新加载常见元素。

例如,访问 Apple.com 并点击您看到“Store”的第一个按钮...您将看到整个页面重新加载,即使未更改的菜单栏重新加载也会浪费带宽..

因为我没有看到其他人使用完整的 ajax 解决方案...我想知道我是否走错了路。

我的问题?

是一个完整的基于 ajax 的 Web 应用程序的最佳实践吗? (当然不支持文件上传,省略这个,是不是最好的做法)。

如果是这样,为什么大网站不这样做?我看到很少有网站实际上使用 ajax 而不是页面重新加载。

【问题讨论】:

  • 在 ajax 中做所有事情的最大缺点之一是在搜索引擎中失败。搜索引擎会抓取您的页面,以寻找他们可以关注到网站上其他页面的链接。如果您在 ajax 中做所有事情,您将没有任何链接,并且搜索引擎可能会将您的网站视为一个页面,从而显着降低您的网站出现在搜索中的机会。
  • 这不会改变任何链接..如果用户点击重新加载按钮,我仍然需要可用的静态版本...会有静态页面..和 ajax 生成的页面

标签: php javascript ajax


【解决方案1】:

完全采用 ajax 的原因有很多。一些是:

  1. 如果用户刷新页面,他们将被送回主页; 如果他们按下后退按钮,他们会回到上一个网站 他们参观了。
  2. 搜索引擎将无法索引主页以外的任何内容。
  3. 任何未启用 javascript 或在 IE 6(或其等效版本)上的人都无法使用该网站。

最后,调试问题可能是地狱——我前段时间在一个项目上使用了完整的 ajax,结果后悔了。

如果上述任何一项对您的项目都不重要,并且您希望做一些不同的事情,那么无论如何 - 您需要问的真正问题是“增加的复杂性是否证明节省带宽是合理的?” .

【讨论】:

  • 1.不,我有一个 Session 变量跟踪他们所在的页面......所以当他们点击重新加载时还有一个静态页面。
  • 1.继续……如果他们反击,这就是我想要发生的事情。
  • 3.现代应用需要 javascript
  • 搜索索引如何工作..必须有办法解决这个问题..例如 facebook 有 10 亿用户,但他们没有链接到他们的主页..我确定我可以在搜索引擎中得到我需要的东西
  • 是的,公元前网络总是找到一种变慢的方法......开发人员似乎假装这不是生活中的事实......但它确实是。
【解决方案2】:

ajax 的概念是在不需要更改所有内容时重新加载页面的某些内容。

您的 apple.com 示例:在导航中使用 ajax 不是最佳实践,因为浏览器的历史不会处理此问题(使用浏览器的后退按钮,如果您使用导航将不会响应ajax,请记住这一点)。

如果你有一个带有推荐的盒子,并且希望它们不时更改,那么这是使用 ajax 的好地方,避免整个页面重新加载。

您还可以拥有一个包含所有推荐的静态页面,让搜索机制为该内容编制索引。

大型网站的例子?谷歌的搜索。当您键入时,仅重新加载结果框以查看一个预览。

所以你必须选择何时使用和何时不使用ajax。

【讨论】:

  • 不..当你可以点击你需要的按钮时你为什么要反击..没关系。
  • 如果是 ajax 而不是回击,您只需点击菜单按钮...这在我看来更有意义..这可能只是一个偏好问题
  • @stack.user.0 不幸的是,并非所有用户都认为与您相同,其中一个可以点击后退按钮,您无法禁用此浏览器功能。
  • 我明白你的意思,但我的网站既简单又小……用户没有理由想要在我的网站中“备份”……但我可以明白为什么像谷歌这样的网站.com 和 apple.com....重新加载...以便您可以备份...我仍然不同意...我认为该网站应该被视为一个应用程序...并且回击应该将您带到以前的应用程序或域...
  • 应用程序间导航应该由应用程序处理..我认为用户可以解决这个问题..但是是的,你是对的,这不是常见的做法..
猜你喜欢
  • 2014-08-30
  • 2014-02-27
  • 2020-02-12
  • 2014-04-05
  • 2019-09-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多