2016-09-06 52 views
-3

我们都知道,如果我们希望浏览网站而不必每次都重新加载页面,那么Ajax请求可以非常方便。但我想知道Ajax是必要的吗?假设我有一个带有3个选项卡的SPA作为我的导航栏。一旦被点击,每个选项卡应向页面主体显示不同的内容。 什么阻止我呈现所有三个选项卡的整个页面标记,并将每个选项卡主体设置为不可见。然后取决于被点击的标签,我显示该标签正文并隐藏当前的(如果有的话)。 据我所知,这对于每个标签内容都有一个明确的资源来说是非常糟糕的,但是我不会用Ajax做到这一点? 另外,我们假设主体内容不是很重的内容,可以快速加载,并且不会在首次加载时花费很长时间。 此外我想补充说,不涉及POST或其他请求。用户不能进行交互而不是对内容进行GET操作。通过可视性而不是Ajax更改HTML内容是不好的做法

我希望这是有道理的。 Ajax的优点是什么,而不是简单地显示/隐藏JS的内容?

+0

它的良好做法。总是问自己,如果它会使用户的页面加载速度更快。不过,不要预先加载20 MiB的内容。这里有一些更多的想法:https://developers.google.com/speed/docs/insights/rules – C14L

+2

不好的做法?良好的做法?都不是。这是您需要根据您的需求,目标受众以及内容大小制定的决策。 –

回答

1

Ajax不仅仅是SPA渲染。这只是一个小用途。如果从用户发布新内容怎么办?那么,它可以在没有页面刷新的情况下处理。这个更新如何在其他地方看到,而不刷新页面?阿贾克斯。简单地说,一次渲染所有内容,就像你说的那样,一切都很好......直到新数据通过。这仍然只是一个原因。

另外,如果用户不需要查看另一个“选项卡”呢?现在是浪费时间来渲染它。所以请按要求渲染它。

正如您在评论中所说的,也许您的具体情况确实意味着AJAX几乎没有用处。这实在不是一个好的做法。这是我需要的事情。

+0

我同意你的观点,但我真的在谈论这个没有内容是动态的特定情况,只涉及获取请求。 – supersize

1

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

如果它只是一些文本,你肯定它不会等到很久以后,那么它可能会更好地卸载所有一次,并切换到标签的点击。

此外,确保img标签在隐藏时未被指定src属性,因为您的浏览器在需要之前会请求它。点击标签后指定src属性。

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

相关问题