Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/407.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 通过可见性而不是Ajax更改HTML内容是否是一种不好的做法_Javascript_Jquery_Html_Css_Ajax - Fatal编程技术网

Javascript 通过可见性而不是Ajax更改HTML内容是否是一种不好的做法

Javascript 通过可见性而不是Ajax更改HTML内容是否是一种不好的做法,javascript,jquery,html,css,ajax,Javascript,Jquery,Html,Css,Ajax,我们都知道,如果我们想在网站中导航而不需要每次都重新加载页面,Ajax请求会非常方便。但我想知道Ajax是否有必要?假设我有一个SPA,有3个选项卡作为导航栏。单击每个选项卡后,它们应在页面正文中显示不同的内容。 是什么阻止我呈现所有三个选项卡的整个页面标记并将每个选项卡主体设置为不可见。然后,根据单击的选项卡,我将显示该选项卡主体并隐藏当前选项卡(如果有)。 我知道这对于每个选项卡内容都有一个清晰的资源来说是非常糟糕的,但是我也不希望使用Ajax? 另外,让我们假设身体内容物不是很重的内容物,

我们都知道,如果我们想在网站中导航而不需要每次都重新加载页面,Ajax请求会非常方便。但我想知道Ajax是否有必要?假设我有一个SPA,有3个选项卡作为导航栏。单击每个选项卡后,它们应在页面正文中显示不同的内容。 是什么阻止我呈现所有三个选项卡的整个页面标记并将每个选项卡主体设置为不可见。然后,根据单击的选项卡,我将显示该选项卡主体并隐藏当前选项卡(如果有)。 我知道这对于每个选项卡内容都有一个清晰的资源来说是非常糟糕的,但是我也不希望使用Ajax? 另外,让我们假设身体内容物不是很重的内容物,它可以很快加载,并且不会在第一次加载时花费很长时间。 此外,我想补充的是,没有职位或额外的要求涉及。用户无法进行交互,只能访问内容


我希望这是有道理的。与使用JS简单地显示/隐藏内容相比,Ajax有什么好处

Ajax不仅仅用于SPA渲染。这只是一个小小的用途。如果用户发布了新内容怎么办?嗯,不需要刷新页面就可以处理所有这些问题。在没有页面刷新的情况下,如何在其他地方看到该更新?AJAX简单地说,一次呈现所有内容,正如您所说,都是好的…直到新数据通过。这仍然只是一个原因

此外,如果用户不需要查看其他“选项卡”,该怎么办?渲染它是浪费时间的。所以只要按要求渲染就可以了


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

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

若它只是一些文本,并且你们确定以后不会有太多的内容,那个么最好是一次加载所有内容,然后点击标签切换

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


所以,只要您确定选项卡中有少量数据,就不需要从服务器获取新内容,并且在实际查看选项卡之前不加载图像,我认为ajax加载是不必要的。一个简单的衰减切换就足够了。这将带来更好的用户体验

这是很好的做法。总是问问自己,这是否会让用户更快地加载页面。不过,不要预加载20个MIB的内容。这里还有一些想法:坏习惯?良好做法?也不这是一个需要根据您的需求、目标受众和内容大小做出的决定。我同意您的观点,但我真正谈论的是这个特定案例,即没有内容是动态的,只涉及get请求。