通过可见性而不是Ajax来更改HTML内容是不好的做法吗?

Is it bad practice to change HTML content via visibility rather than Ajax

本文关键字:可见性 Ajax HTML      更新时间:2023-09-26

我们都知道,如果我们想要浏览一个网站,而不需要每次都重新加载页面,Ajax请求是非常方便的。但我想知道Ajax是否必要?让我们假设我有一个有3个标签的SPA作为我的导航条。每个选项卡应该显示不同的内容到页面的主体,一旦他们被点击。是什么阻止了我呈现所有三个选项卡的整个页面标记并将每个选项卡主体设置为不可见。然后根据哪个选项卡被点击,我显示该选项卡主体并隐藏当前选项卡主体(如果有的话)。我知道这对于每个选项卡内容都有一个明确的资源来说是非常糟糕的,但是如果使用Ajax,我也不会这样做。另外,让我们假设正文内容不是很重的内容,可以快速加载,并且第一次加载时不需要很长时间。此外,我想补充的是,不涉及POST或其他请求。用户只能对内容进行get,而不能进行交互。

我希望这有意义。在这里,Ajax比用JS简单地显示/隐藏内容有什么好处?

Ajax不仅仅用于SPA渲染。这只是一个很小的用途。如果用户发布了新内容怎么办?嗯,它可以处理所有不刷新页面。在没有页面刷新的情况下,如何在其他地方看到更新?Ajax。简单地说,就像你说的,一下子把一切都处理好……直到有新的数据出现。这还只是一个原因。

另外,如果用户不需要查看另一个'选项卡'怎么办?渲染它是浪费时间。所以只要在请求时渲染它。

正如您在评论中所说的,也许您的具体情况确实意味着AJAX没有什么用处。这真的不是一个好的练习的问题。这是我需要它的问题。

这取决于其他两个选项卡中隐藏了多少内容。另外,你有多确定你的SPA只有3个标签?或者选项卡将包含特定数量的数据?

如果它只是一些文本,并且你确定它以后不会有很多,那么它可能最好一次加载并在点击标签时切换。

另外,确保img标签在隐藏时没有分配src属性,因为浏览器会在需要它之前请求它。在单击选项卡后分配src属性。

所以只要你确定你有少量的数据在你的标签,不需要从服务器的新鲜内容,并保持图像从实际查看标签之前加载,我认为ajax加载是不必要的。一个简单的fadeToggle就足够了。这将带来更好的用户体验。