最好一次或逐级加载javascript导航层次结构



我正在为一个网站开发一些自定义jQuery/javascript导航,我对设计决策的性能影响很好奇。

它的工作方式是,每个选项最多有8个子选项,这个层次结构可以深入4个级别。我相信这会产生8^4或4096个可能的导航项目(可能更少,但这是最大值)。这些关系是在服务器端定义的。

目前我正在处理测试数据,所以只有大约50个导航项目。当页面加载时,我会创建每个导航项,然后只显示当前选择所需的内容。

我应该考虑重写它,只加载通过AJAX调用或其他方式进行选择时需要的项目吗?我担心,如果导航项目达到4096个,我目前的方法可能无法很好地扩展。

如果拥有4096个导航项是一种真正的可能性,那么您将不得不执行您所描述的操作。简单地将项加载到DOM将花费相当长的时间,并且进一步的处理将导致更大的延迟和较差的体验。

对于少数项目,过度设计解决方案可能不值得。然而,预计在许多项目上的业绩增长将是显著的。

以下是Telerik Treeview中的按需加载示例。我并不主张购买控件(控件很棒,但价格昂贵),但这是一个很好的例子。你自己编码并不难,正如你所看到的,这会带来很好的用户体验。

我的两分钱:如果你有时间,在以后事情变得更加复杂/困难之前,现在就做。

同时下载它们绝对是一种选择,尽管将它们加载到DOM中是另一回事。如果你真的达到了4096的可能性限制,你可以考虑降低1-2兆字节的页面加载量(考虑到图像大小,不要太多)。除非您正在查看更多的数据(可能是16个节点,8个级别深16^8),否则这将是一个合理的问题。

你可以总是加载2个深度(8^2=64),然后当他们打开一个面板时,加载该面板的所有内容。他们需要点击的第二层应该给你足够的时间来加载其余的值。

最新更新