当前位置: 首页 > 面试题库 >

我应该使用AJAX加载整个html页面吗?

章学义
2023-03-14
问题内容

我的设计师认为在不同页面之间创建过渡是一个好主意。本质上,只有内容部分会重新加载(页眉和页脚保持不变),并且只有内容div应该具有过渡效果(淡入淡出或某种形式)。创造这种效果并不是真正的问题,让Google(分析)感到高兴的是…

我不喜欢的解决方案以及原因;

  • 仅使用ajax加载内容div:谷歌将看不到任何内容,这意味着将永远找不到该网站,或者仅显示由ajax检索的部分,而这些部分根本不会显示整页
  • 显示过渡效果,然后将用户“重定向”到指定页面(捕获元素的click事件):效果与仅链接到另一个页面几乎相同。用户仍然会看到页面正在重新加载

我想到了一个可能的解决方案:当访客单击链接,捕获事件,使用ajax加载目标,同时显示过渡效果时,然后仅使用通过ajax请求获取的内容重写整个文档。

至少这将起作用并具有一些优点;无论您的互联网连接速度有多慢,页面的重新加载看起来都是无缝的,谷歌不会在意,因为ajax内容本身就是一个完整的html页面,并且可以按原样进行爬网,即使是非JavaScript浏览器(手机等。)不会介意,他们只是重新加载页面。

实施该方法的犹豫是我将使用Ajax重新加载整个页面。我想知道这是否就是ajax的目的,是否会使速度变慢。最重要的是,有没有更好的解决方案,例如。我的第一个“坏”解决方案但略有不同,因此Google希望使用它(分析也是如此)?

感谢您对此的想法!


问题答案:

简短的答案:我不建议以这种方式加载整个页面。

长答案:不推荐。尽管可能,但这并不是XHR / Ajax的真正意图。本质上,您正在做的是复制浏览器的本机行为。您将遇到的一些问题:

  1. 支持“后退/前进”按钮。您需要使用URI#方案来解决。
  2. 浏览器必须通过AJAX解析整个页面。这会使事情变慢。例如,如果您将HTML块加载到浏览器中,然后用它替换DOM,则只有其中的所有脚本,CSS或图像才会开始下载。
  3. 内存-浏览器未更改页面。随着时间的推移(取决于浏览器),我希望内存使用量会增加。
  4. 辅助功能。每当页面内容更新时,都需要通知屏幕阅读器。可能对您而言不是问题,但值得一提。
  5. 正在缓存。浏览器将不知道要缓存的页面(超出初始负载)。
  6. 关注点分离-您的View本质上分为服务器端部分,以呈现页面内容以及页面框架的静态HTML,最后是JS,将服务器部分与浏览器部分组合在一起。随着时间的推移,这将使维护变得麻烦而复杂。
  7. 与其他组件的集成-您已经发现Google Analytics(分析)存在问题。您可能会遇到其他与DOM的构建时间有关的组件的问题。

是否值得为页面过渡效果而用,但这是您的电话,但我希望我已经回答了您的问题。



 类似资料:
  • 问题内容: 我正在尝试使用加载外部页面,但是该页面是一个页面,我只想使用ajax来获取其内容。 编辑:之所以这样做,是因为我想在加载页面而不是我的服务器时传递所有用户信息,例如:标头,ip,代理。 这可行吗?现在,我可以获取页面,但是jsonp尝试解析json,并返回错误: 样例代码: 我已经建立了一个jsfiddle供人们测试:http : //jsfiddle.net/8A63A/1/ 问题答

  • 问题内容: 在讨论特定问题之前,我需要解释一些基本步骤。 首先,所涉及的应用程序处理客户在线约会的管理。 顾客填写完美容中心的护理表格并提供其信息后,将进入确认页面。 现在,此页面执行ajax请求以将约会存储在数据库中。 如果一切成功,将显示一个页面,其中包含约会的详细信息以及成功消息。 问题在于该页面当前仅显示在响应中,即在选项卡网络控制台浏览器中。 所以我的问题很简单: 即使在StackOve

  • 问题内容: 我在这个小组中搜索并在Google周围搜索,但仍然没有运气,我也看到有些问题,但是线程并没有帮助,所以我在这里 这个问题很简单,为了帮助您,我在.zip文件中打包了可以测试的文件 http://www.ivanhalen.com/fancyproblem.zip 我有一些链接的主页(index.php) 单击它们将加载通过AJAX的摘要(page.php) 在代码段中,有一个或多个链接

  • 问题内容: 我有一个PHP include,它需要一段时间才能加载,因为PHP必须获取很多数据。我不想放慢整个网页的加载,以等待包含此内容,那么如何使用ajax加载该包含内容呢?我不希望通过单击按钮来触发Ajax,而只是希望它在页面加载时加载包含,因此,如果您查看下面的示例,则会在显示内含代码的同时显示“更多HTML内容”。 php仍在加载中。 问题答案: 如果您使用的是jQuery,则可以使用他

  • 好的,首先,我将告诉这应该如何工作:我有一个页面的图片链接下侧,点击一个图片,该链接的信息出现在另一个div。我使用jQuery/Ajax将链接id发布到一个php文件中,并将该数据返回到所选的div。链接应该分页,以便一次显示4个。 这是正在发生的事情:post部分是ok的,当我单击一个链接时,正确的数据将显示在所选的div中。我不知道如何使链接div分页虽然。我需要他们分页时,页面加载,现在当

  • 问题内容: 我目前正在开发一个网站,我需要根据用户执行的操作来动态加载页面。 示例:如果用户单击“设置”按钮,则ajax函数将从外部页面加载该代码,并将其放入带有标签“设置”的div中。 这是我用来发出Ajax请求的代码: 这是第一个代码片段将ajax结果放入的位置: 该代码是从此处的函数调用的: 这是ajax函数将放入div 的html : 我想知道是否有一种方法也可以执行ajax函数返回的ja