通过可见性而不是Ajax来更改HTML内容是不好的做法吗?
Is it bad practice to change HTML content via visibility rather than Ajax
我们都知道,如果我们想要浏览一个网站,而不需要每次都重新加载页面,Ajax请求是非常方便的。但我想知道Ajax是否必要?让我们假设我有一个有3个标签的SPA作为我的导航条。每个选项卡应该显示不同的内容到页面的主体,一旦他们被点击。是什么阻止了我呈现所有三个选项卡的整个页面标记并将每个选项卡主体设置为不可见。然后根据哪个选项卡被点击,我显示该选项卡主体并隐藏当前选项卡主体(如果有的话)。我知道这对于每个选项卡内容都有一个明确的资源来说是非常糟糕的,但是如果使用Ajax,我也不会这样做。另外,让我们假设正文内容不是很重的内容,可以快速加载,并且第一次加载时不需要很长时间。此外,我想补充的是,不涉及POST或其他请求。用户只能对内容进行get,而不能进行交互。
我希望这有意义。在这里,Ajax比用JS简单地显示/隐藏内容有什么好处?
Ajax不仅仅用于SPA渲染。这只是一个很小的用途。如果用户发布了新内容怎么办?嗯,它可以处理所有不刷新页面。在没有页面刷新的情况下,如何在其他地方看到更新?Ajax。简单地说,就像你说的,一下子把一切都处理好……直到有新的数据出现。这还只是一个原因。
另外,如果用户不需要查看另一个'选项卡'怎么办?渲染它是浪费时间。所以只要在请求时渲染它。
正如您在评论中所说的,也许您的具体情况确实意味着AJAX没有什么用处。这真的不是一个好的练习的问题。这是我需要它的问题。
这取决于其他两个选项卡中隐藏了多少内容。另外,你有多确定你的SPA只有3个标签?或者选项卡将包含特定数量的数据?
如果它只是一些文本,并且你确定它以后不会有很多,那么它可能最好一次加载并在点击标签时切换。
另外,确保img标签在隐藏时没有分配src属性,因为浏览器会在需要它之前请求它。在单击选项卡后分配src属性。
所以只要你确定你有少量的数据在你的标签,不需要从服务器的新鲜内容,并保持图像从实际查看标签之前加载,我认为ajax加载是不必要的。一个简单的fadeToggle就足够了。这将带来更好的用户体验。
- D3在一个调用中绘制不同的SVG形状,没有可见性
- jQuery css可见性在load方法中不起作用
- 页面可见性API实际上支持操作系统屏幕锁定吗
- 有没有一种方法可以从隐藏的可见性(CSS,JS)中获得淡入效果
- JavaScript可见性不起作用('隐藏'起作用,'可见'不起作用)
- 从内部回调的可见性
- Openlayers 3为了可见性而绑定到Vector层的复选框没有任何作用
- 在另一个下拉列表中的选择上切换下拉列表中选项的可见性
- 如何禁用mouseout可见性=“;隐藏的“;对小于768px的介质的影响
- 在网格视图的自动刷新过程中,设置内部网格视图文本框的可见性
- 将元素的可见性绑定到另一个元素
- 使用 Javascript 将 HTML 页面中的默认可见性从可见更改为隐藏
- 使用 jQuery 检查文本可见性 .包含代码的行为不符合预期
- 在 jQuery 手风琴样式菜单中切换子项可见性
- CSS 中定义的可见性值未显示在 Javascript 中
- jquery切换可见性
- AJAX 发送方法和按钮可见性
- 封装ajax调用失败可能是因为对象可见性
- 当通过Ajax动态加载时,多个脚本之间的可见性
- 通过可见性而不是Ajax来更改HTML内容是不好的做法吗?